Java 将while循环数字游戏变成do while循环数字游戏
我用while循环做了一个数字游戏,但有人告诉我应该用do-while来代替。我想知道如何将它从这种格式转移到do whileJava 将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
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);