Java 将while循环数字游戏变成do while循环数字游戏

Java 将while循环数字游戏变成do while循环数字游戏,java,Java,我用while循环做了一个数字游戏,但有人告诉我应该用do-while来代替。我想知道如何将它从这种格式转移到do while import java.util.Scanner; public class SS_Un6As2 { public static void main(String[] args) { int guess = 0; int randomNumber = (int) (Math.random() *100) +1; Scanner sca

我用while循环做了一个数字游戏,但有人告诉我应该用do-while来代替。我想知道如何将它从这种格式转移到do while

import java.util.Scanner; 

public class SS_Un6As2 {

   public static void main(String[] args) {

   int guess = 0;

   int randomNumber = (int) (Math.random() *100) +1;

   Scanner scan = new Scanner(System.in);

   boolean running = true;

       while(running){
           System.out.println("Guess your number");
          guess = scan.nextInt();
           if(guess == randomNumber) {
                System.out.println("You are correct");
             break;
           }
           else if (guess > randomNumber){
               System.out.println("Too high.");
           }              
           else if (guess < randomNumber){
               System.out.println("Too low");
          }
           else {
               System.out.println("Try again");

           }
       }

   System.out.println("Thanks for playing");
    }
}
解决你的问题

将While循环应用于您的问题

do while循环在while中有一个条件语句

把这当作你的假设陈述。现在你希望这是真的,直到这个人猜了12次。从逻辑上讲,您只需要计算猜测的数量,因此我们将引入一个名为guesses的int。你只想猜到12次,而不是更多,所以这就是我们的出发点

do {
   // Some code goes here.
   guesses ++;
   // Increase the number of guesses if they got it wrong.
}
while(correct = false && guesses < 12)
我所做的是组成一个名为correct的变量,它告诉人们是否正确。每次他们做出错误的猜测,我都会增加猜测值。这意味着只有在以下情况下,循环才会停止:

这个人猜对了 该人有12次尝试

在您的情况下,这很容易:

       boolean running = true;    
       do {
           System.out.println("Guess your number");
           guess = scan.nextInt();
           if(guess == randomNumber) {
                System.out.println("You are correct");
             break;
           }
           else if (guess > randomNumber){
               System.out.println("Too high.");
           }              
           else if (guess < randomNumber){
               System.out.println("Too low");
           }
           else {
               System.out.println("Try again");

           }
       } while (running)
将成为

if (condition) {
  do {
    ...
  } while (condition)
}
如果在猜测随机数时使用break,那么使用running作为控件来跳出循环是没有意义的。当这种情况发生时,我会简单地改变跑步。此外,打印重试的行将永远不会运行,因此可以删除该else块。看起来是这样的

do{
          System.out.println("Guess your number");
          guess = scan.nextInt();

          if(guess == randomNumber) 
          {
               System.out.println("You are correct");
               running = false;
          }
           else if (guess > randomNumber)
          {
               System.out.println("Too high.");
          }              
          else if (guess < randomNumber)
          {
               System.out.println("Too low");
          }
} while(running);

就这样?好的,谢谢。就这样。顺便说一句,既然你是新来的,你应该回答。还有一个问题,我如何使它成为一个计数循环,我一直试图查找它,但我找不到答案计数循环?比如for循环?+1是一个简单问题的详细答案。我们班上还没有学习for循环,所以不可能是这样,我应该让你用while来猜12次。如果你知道循环应该运行多少次,你应该总是使用for循环,但是如果你的老师想教你while循环,我将为您编辑一个快速演示:
do {
}
while(something is true)
do {
   // Some code goes here.
   guesses ++;
   // Increase the number of guesses if they got it wrong.
}
while(correct = false && guesses < 12)
       boolean running = true;    
       do {
           System.out.println("Guess your number");
           guess = scan.nextInt();
           if(guess == randomNumber) {
                System.out.println("You are correct");
             break;
           }
           else if (guess > randomNumber){
               System.out.println("Too high.");
           }              
           else if (guess < randomNumber){
               System.out.println("Too low");
           }
           else {
               System.out.println("Try again");

           }
       } while (running)
while (condition) {
  ...
}
if (condition) {
  do {
    ...
  } while (condition)
}
do{
          System.out.println("Guess your number");
          guess = scan.nextInt();

          if(guess == randomNumber) 
          {
               System.out.println("You are correct");
               running = false;
          }
           else if (guess > randomNumber)
          {
               System.out.println("Too high.");
          }              
          else if (guess < randomNumber)
          {
               System.out.println("Too low");
          }
} while(running);