“是”和“是”并不等同于Java

时间:2016-09-24 03:12:17

标签: java string if-statement

我正在用Java做一个非常简单的“猜谜游戏”。在游戏结束时,我会问用户他/她是否想要再次玩我的游戏,如下所示:

     System.out.println("Would you like to play again? (Type 'yes' or 'no' into the field)");
     Scanner scanner2 = new Scanner(System.in);
     String again = scanner2.nextLine();

     if (again=="yes") {
        local = false;
        loopAgain = true;
     }

     else if (again=="no") {
        loopAgain = false;
        local = false;
     }

     else {
        System.out.println("Invalid input. Please type 'yes' or 'no' into the field.");
        local = true;
}

理论上,如果我在控制台中输入“yes”,那么if语句应该执行,将变量loopAgain设置为true,这会在我的代码中激活while语句。另一个变量local也引用了之前的while语句。

但是,当我在控制台中键入“yes”(或“no”)时,我会收到无效的输入消息。我知道变量again是一个字符串,因为我暗示它应该等于“是”,所以我很困惑为什么第一个if语句没有执行,因为它应该。这可能是非常简单的事情,但这是我第一次使用Java编程,所以如果我错过了一些非常明显的东西,我会道歉!!

非常感谢任何帮助。

0 个答案:

没有答案