![](/img/trans.png)
[英]Java: try(Scanner scan = new Scanner(System.in) { } causing an exception
[英]how to scan for certain character with scanner(system.in)
我是Java编程的新手。 我试图使计算器可以使用if语句执行4种基本数学运算。 但是我没有按预期工作。 尝试解析运算符时,它仅以else语句结束。
我想我的if语句格式不正确?
任何帮助是极大的赞赏。
谢谢。
import java.util.Scanner;
import java.lang.Object;
public class calc {
public static void main(String args[]) {
System.out.println("Test kalkulator za sabiranje");
Scanner keyboard = new Scanner(System.in);
double fnum, snum, res;
String ch = "";
System.out.println("Enter first number: ");
fnum = keyboard.nextDouble();
System.out.println("Enter operation: ");
ch = keyboard.next();
if( ch == "+") {
System.out.println("Enter second number: ");
snum = keyboard.nextDouble();
res = fnum + snum;
System.out.println("Result is: "+ res);
}
else if ( ch == "-") {
System.out.println("Enter second number: ");
snum = keyboard.nextDouble();
res = fnum - snum;
System.out.println("Result is: "+ res);
}
else if ( ch == "/") {
System.out.println("Enter second number: ");
snum = keyboard.nextDouble();
res = fnum / snum;
System.out.println("Result is: "+ res);
}
else if( ch == "*") {
System.out.println("Enter second number: ");
snum = keyboard.nextDouble();
res = fnum * snum;
System.out.println("Result is: "+ res);
}
else {
System.out.println("You entered wrong operator, please try again");
}
keyboard.close();
}
}
字符串对象是引用对象,这意味着您键入类似
str == "+"
您正在检查内存中str所在的点是否等于+。 要验证两个字符串是否相等,您需要使用.equals方法,如下所示
str.equals("+")
而不是==
您应该使用equals
方法
您的代码很好,问题是当您将ch
与字符串“ +”,“-”等进行比较时...
在Java中,字符串是对象。 如果对象引用相同的对象,则使用==
运算符比较对象只会返回true。 为了实际比较这两个对象,您需要使用equals()
方法。
综上所述,正确的条件应该是:
if(ch.equals("+")){ }
用于每个比较。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.