java - 无法弄清楚当用户输入 0 时如何处理退出 do-while 循环

标签 java

我只是在做一个简单的猜谜游戏。如果用户输入 0,我需要 do-while 循环退出。按照目前的情况,如果这是他们输入的第一个数字,它会正确退出,但否则它只会随着猜测次数的总和而增加。这是我的代码:

System.out.println("The system will generate a random number between 1 and 100."
            + " Your goal is to guess this number.");
    do
    {

    Random secretNumberGen = new Random();
    int secretNumber = secretNumberGen.nextInt(100)+1;

    System.out.println("Enter a number between 1 and 100: ");
    guess = scan.nextInt();
    do
       {

        if(guess==secretNumber)
        {
            System.out.println("You guessed the number!");
        }
        else if(guess<secretNumber)
          {
         System.out.println("Your guess is too low! Guess again");
         numGuess++;
          }
        else if(guess>secretNumber)
          {
         System.out.println("Your guess is too high! Guess again");
         numGuess++;
          }
        else if(guess==0)
               break;
        System.out.println("Your number: \n");
        guess = scan.nextInt();
        guess++;
       }
    while(guess!=0&&guess!=secretNumber);

我猜测 while() 循环中的条件可能不正确。我稍微改变了它之前的样子,即 while(guess!=secretNumber); 。也许保持原样更好,我们应该以不同的方式对待输入 0? 谢谢。

最佳答案

问题是您增加了除第一个之外的所有猜测:

    System.out.println("Your number: \n");
    guess = scan.nextInt();
    guess++;

所以他们需要输入-1来猜测0并结束循环。他们还需要输入比 secretNumber 少一的数字才能得到正确的猜测......

关于java - 无法弄清楚当用户输入 0 时如何处理退出 do-while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17394079/

相关文章:

java - 在我的 Java2D 程序中定期调用 repaint() 的最佳方法是什么?

java - 复制文件的shell脚本

java - 将参数传递给在 bat 文件中调用的 jar 文件?

java - 在 GWT 的 Java 或 PHP 之间进行选择!

Java实现htonl

java - vertx中 future 的完成方法有什么用?

java - 收集、存储和检索大量数值数据

初始化时出现 java.lang.NoSuchMethodError 错误。 session 工厂

java - Android 接近警报不工作

java - Servlet 容器如何管理组成的 jsessionid?