java.util.Scanner条件语句错误

时间:2014-07-09 00:43:35

标签: java

在下面的代码中,我创建了一个扫描程序对象,询问用户输入,然后 通过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语句出错了什么?有什么明显的东西让我失踪吗?

1 个答案:

答案 0 :(得分:4)

Java中的

字符串比较与.equals()方法一起使用。

if(answer.equals("x")) {
    System.out.println("True");
} else {
    System.out.println("False");
}