所以我的最终目标是我希望 while 循环仅在年龄输入不正确时起作用。 当我输入无效年龄(例如 200 岁)时,它会提示输入年龄,但当我输入有效年龄(例如 20 岁)时,它会反复提示。我该如何解决这个问题?
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
final int MIN_AGE = 18, MAX_AGE = 65, MAX_POSSIBLE_AGE = 120;
boolean inputErrorage = false;
int age;
System.out.println();
System.out.print("\tEnter your age: ");
age = scan.nextInt();
if (age < 0 || age > MAX_POSSIBLE_AGE) {
inputErrorage = true;
}
while (inputErrorage) {
System.out.print("\tEnter your age: ");
age = scan.nextInt();
}
if (!inputErrorage) {
System.out.println("ok");
}
}
最佳答案
while (inputErrorage) {
System.out.print("\tEnter your age: ");
age = scan.nextInt();
}
您永远不会重置 inputErrorAge 的值,因此如果它曾经为真,它将保持为真。
while (inputErrorage) {
System.out.print("\tEnter your age: ");
age = scan.nextInt();
inputErrorAge = (age < 0 || age > MAX_POSSIBLE_AGE);
}
应该可以解决。
关于java - 在 Java 简单程序中跳出 While 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33437066/