java - 我的 while 循环不会因中断而停止?

标签 java eclipse while-loop

if (sum < 6) {
    System.out.println("You win");
    System.out.println();
    // Does the user want to retry?
    System.out.print("Would you like to retry?(Y or N) : ");
    String retry = input.nextLine();

    while (true) {
        // If they say y or Y, roll again
        if (("y".equals(retry)) || ("Y".equals(retry))) {
            roll();
        // Check for anything other than y and Y
        } else if (("n".equals(retry)) || ("N".equals(retry))) {
            System.out.println("Closing");
            break;
        } else if (!("y".equals(retry)) || !("Y".equals(retry))) {
            System.out.print("Invalid input. Would you like to retry?(Y or N) : ");
            retry = input.nextLine();
            System.out.println();

        }
    }
} else if (sum > 6) {
    System.out.println("You lose");
    System.out.println();
    System.out.print("Would you like to retry?(Y or N) : ");
    String retry = input.nextLine();
    while (true) {
        if (("y".equals(retry)) || ("Y".equals(retry))) {
            roll();
        } else if (("n".equals(retry)) || ("N".equals(retry))) {
            System.out.println("Closing");
            break;
        } else if (!("y".equals(retry)) || !("Y".equals(retry))) {
            System.out.print("Invalid input. Would you like to retry?(Y or N) : ");
            retry = input.nextLine();
            System.out.println();
        }
    }
}

我正在尝试制作一个骰子游戏,当用户输入 "y" 时,游戏将继续掷骰子。或"Y" 。我还希望它停止游戏并说 "Closing"当用户输入"n"时或"N" .

问题是,当用户输入"n"时或"N" ,它会打印出 "Closing"但循环不会停止,游戏将再次掷骰子。当用户输入 "n" 时如何使 while() 循环停止或"N"

这是用户选择停止游戏时的输出 ("n" or "N") : 会

you like to retry?(Y or N) : n
Closing
Rolling...
You rolled : 1 & 4
Sum = 5
You win

对于这么基本的问题,我很抱歉,我是编程新手。

最佳答案

将行 String retry = input.nextLine(); 移至 while 循环(在两个 if 分支中)。目前,您读取一个输入,然后一遍又一遍地比较该不变的输入。

关于java - 我的 while 循环不会因中断而停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43969022/

相关文章:

java - 具有 FileReadingMessageSource 的 IntegrationFlows 对同一输入文件触发作业两次

java - Java中字符串连接时如何跳过特定字符串?

eclipse - 让 Eclipse 识别自动 CUDA 内核变量和函数

java - 我的程序中的第二个扫描仪不会将输入值放入我的整数中?

c++ - while 循环 C++ 中的 Switch 语句

Java 序列化(X509CertificateObject 的)

java - Spring Boot Web 应用程序加载由另一个应用程序创建的新网页

java - Spring Boot 示例在 eclipse 中抛出 MojoExecutionException

eclipse - 将 Eclipse 连接到我的服务器

c - while 循环根据用户输入的整数进行倒计时