在下面的代码中,我创建了一个扫描程序对象,询问用户输入,然后 通过if / else语句运行用户输入。
import java.util.Scanner;
class Conditional {
Scanner in = new Scanner(System.in);
String answer = in.next();
if(answer == "x") {
System.out.println("True");
} else {
System.out.println("False");
}
}
然后,我运行我的代码,然后输入“x”,没有引号。系统输出“False”,但我不明白为什么。我尝试用“x”(引号)替换“answer”变量,以查看我的if / else语法是否搞砸了。不。在我进行切换后,系统吐出“真”。我开始认为也许“回答”实际上并不是一个字符串。为了测试它,我做了与你在上面的代码块中看到的完全相同的东西,但在switch语句中:
Scanner in = new Scanner(System.in);
String answer = in.next();
switch(answer) {
case "x":
System.out.println("True");
break;
default:
System.out.println("False");
break;
}
上面的代码块,一旦我回答“x”,返回“True”。我的if / else语句出错了什么?有什么明显的东西让我失踪吗?
答案 0 :(得分:4)
字符串比较与.equals()
方法一起使用。
if(answer.equals("x")) {
System.out.println("True");
} else {
System.out.println("False");
}