有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java中Do/While循环的问题

这段代码是我正在制作的21点游戏的一个片段。无论我输入什么,程序都不会跳出循环

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) 个答案

  1. # 1 楼答案

    您正在将字符串与==进行比较。在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来比较字符串,而不管它们的大小写如何

    希望这有帮助