【发布时间】:2018-03-07 21:49:21
【问题描述】:
这个 do/while 循环如果出现错误,将无限循环,即使每次循环后 error 都设置为 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;
}
}
【问题讨论】:
-
@Amit Phaltankar,这与我的问题无关。此外,该错误仅存在于此方法中,我检查了其他编程以确保没有其他冲突。
标签: java loops methods java.util.scanner