问题描述
import java.util.Scanner;
public class doWhileLoops
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("Guess a number between 1 and 10:");
int val = input.nextInt();
do
{
System.out.println("Guess Again!");
val = input.nextInt();
}
while(val != 5);
do
{
System.out.println("Stop messing around!");
val = input.nextInt();
}
while(val < 1 || val > 10);
if(val == 5)
{
System.out.println("Nice guess!");
}
}
}
我不确定这段代码有什么问题,我尝试了很多方法来改变它,但它只是没有按照我想要的方式运行。 如果用户输入除 5 以外的任何内容,那么它会说“再猜一次”,即使它超过 10 或小于 1,但直到用户输入 5,它是否会说“停止乱搞!”,那么如果我再次输入 5,然后它说“很好的猜测”。
1楼
使用 do-while 语句,您执行 do 块中的代码一次,然后验证 while 语句中的条件,因此如果您不想在验证之前执行一次,我建议您使用 while 而不是 do-while。
2楼
也许像
…………
while(val != 5){
System.out.println("Guess Again!");
val = input.nextInt();
if(val < 1 || val > 10){
System.out.println("Stop messing around!");
val = input.nextInt();
}
}
if(val == 5)
{
System.out.println("Nice guess!");
}
......
会做预期的结果。