Java中Do / While循环的问题

时间:2014-04-14 00:37:46

标签: java loops while-loop do-while

此代码是我正在制作的二十一点游戏的片段。无论我输入什么,程序都不会突然出现。

boolean bool = true;
do{
    Scanner kb = new Scanner(System.in);
    String choice = kb.next();
    if(choice == "Hit" || choice == "hit") {
        String action = "hit";
        bool = false;
    } else if(choice == "Stay" || choice == "stay") {
        String action = "stay";
        bool = false;
    } else {
        System.out.println("Do not recognize response. Retry.");
    }
} while (bool == true);

通常会发生什么: http://puu.sh/87KZk.png

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:5)

您正在使用==比较字符串。在Java中,我们将字符串与.equals()进行比较。

您可以这样做:

boolean bool = true;
do {
    Scanner kb = new Scanner(System.in);
    String choice = kb.next();
    if(choice.equals("Hit") || choice.equals("hit")) {
        String action = "hit";
        bool = false;
    } else if(choice.equals("Stay") || choice.equals("stay")) {
        String action = "stay";
        bool = false;
    } else {
        System.out.println("Do not recognize response. Retry.");
    }
} while (bool == true);

为了清晰起见,我还格式化了代码的某些部分。 如下面的评论所示,您也可以使用equalsIgnoreCase来比较字符串,无论其大小写如何。

希望这有帮助!