【发布时间】:2014-09-10 11:57:06
【问题描述】:
为什么异常发生后 Scanner 不读取值?这是代码。当抛出异常时,在下一次迭代中它不允许用户输入数据,它总是转到 catch 块并打印文本。
public class Main {
public static void main(String[] args) {
Scanner inputScanner = new Scanner(System.in);
boolean correctInput = false;
do {
try {
int readInt = inputScanner.nextInt();
correctInput = true;
} catch (InputMismatchException e) {
correctInput = false;
System.out.println("Please enter int value");
}
} while (!correctInput);
}
}
【问题讨论】:
-
不要使用异常来控制代码流。请改用
while(!scanner.hasNextInt())。
标签: java