-1
在下面的代码中,我创建了一个扫描器对象,询问用户输入,然后 通过if/else语句运行用户输入。java.util.Scanner条件语句错误
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语句错了?有什么明显的我失踪了吗?
的可能重复【JAVA String.equals与==(http://stackoverflow.com/questions/767372/java-string-equals-versus)的[我如何比较字符串在 –
可能重复Java?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – BitNinja
如果它只有一个字符长,为什么不使用'char'原始数据类型。在这种情况下,您可以使用==进行比较,代码效率更高。 – Sky