我写了这个简单的代码来获取一个double,直到给出一个请求,但是当你给一个字符串时,它会变成一个无限循环,我不知道为什么。为什么会这样表现?这段代码为什么会变成无限循环?
Scanner scanner = new Scanner(System.in);
double x = 0.0d;
while (true) {
try {
System.out.println("Gimme a double:");
x = scanner.nextDouble();
break;
} catch (InputMismatchException e) {}
}
System.out.println(x);
你永远不应该像你一样吞下异常重新做。至少在那里放置一个打印语句,这样你会看到循环连续执行异常并跳过你的break语句。 – 2013-05-01 00:06:47
我发现通过在catch块中放置打印语句,但我没有看到将它带入示例代码的一点。 – Seralize 2013-05-01 00:08:37