gpt4 book ai didi

java - Do/While Loop 当条件设置为 false 时循环

转载 作者:行者123 更新时间:2023-11-30 02:14:03 26 4
gpt4 key购买 nike

如果出现错误,这个 do/while 循环将无限循环,即使在每次循环后将错误设置为 false...我不知道如何解释它。

import java.util.Scanner;

public class ErrorChecking {

public static int inputInt(Scanner input, String console) {

int finalInt = 0;
int num;
boolean error = false;

do {
error = false;
System.out.print(console);
if(input.hasNextInt()) {
num = input.nextInt();
String numDuplicate = Integer.toString(num);
int numLength = numDuplicate.length();
if(numLength == 8) {
finalInt = num;
error = false;
} else {
System.out.println("Invalid input. ID needs to be 8 digits long. Please try again.");
error = true;
}
} else {
System.out.println("Invalid input. ID needs to be 8 numbers. Please try again.");
error = true;
}
} while(error);

return finalInt;

}

}

最佳答案

如果 input.hasNextInt() 返回 false,那么您的循环将永远运行,因为您不执行任何操作来推进输入,它将返回 每次迭代时为 false。我的猜测(没有有关程序行为的更多详细信息)是,这就是正在发生的事情。

您需要以某种方式消耗当前输入来清除错误条件。执行此操作的逻辑取决于您期望的输入内容。

关于java - Do/While Loop 当条件设置为 false 时循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49161794/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com