【发布时间】:2020-12-30 11:28:37
【问题描述】:
我正在尝试构建一个数字猜谜游戏,其中有一个带有 2 个条件的 while 循环。然而,即使在这 2 个条件中的 1 个变为 false 之后,即使我有 ||,循环也会继续进行。这些条件之间的运算符。此外,如果我清除了 while 循环的第一个条件,那么第二个条件就像我想要的那样完美,但如果它存在,那么我知道为什么它不会停止。这是我的代码:
import java.util.Random;
import java.util.Scanner;
public class NumberGuess {
public static void main(String args[]) {
Random num = new Random();
int number = 1 + num.nextInt(10);
Scanner inp = new Scanner(System.in);
boolean guessed = false;
System.out.println("Welcome to Number guess!");
int guess_count = 5;
while(guessed == false || guess_count > 0 ) {
System.out.print("Enter your guess: ");
int input = inp.nextInt();
if(input == number) {
System.out.println("You guessed it right!");
guessed = true;
}
else {
System.out.println("Nope!");
guessed = false;
guess_count--;
System.out.println("Guesses left: " + guess_count);
}
}
}
}
当计数器低于 0 时,循环也会继续进行,但我不希望这样。 请告诉我我哪里错了。
【问题讨论】:
-
如果我正确理解了您想要实现的目标,我认为您应该使用 &&(而不是 ||)。
-
您需要更好地阐明您所期望的行为。要退出循环,您需要
guessed是true并且guess_count是零或更小。如果最后的猜测是错误的,你将guessed设置为假(在else分支中),因此即使guess_count为零或更小,你也会留在循环中。这是你想要的吗? -
@Franco,谢谢我现在做对了。
标签: java while-loop