【发布时间】:2015-11-09 14:50:02
【问题描述】:
我无法理解为什么代码不起作用。我的目标是继续阅读用户的输入,直到用户最终输入“5”,代码将继续输入。 我很欣赏可能有更好的方法,并且愿意接受更简洁的方法来解决这个问题(也许是尝试解析一个字符串),但是我的问题是为什么我的方法不起作用而不是寻找更好的方法。
当输入任何整数时,代码都能完美运行,但是如果我要输入字符串,代码会不断循环,并且始终启动 catch 块而无需任何输入。我认为这是扫描仪保留我的输入的一个功能,但我不确定。
我的代码如下:
import java.util.Scanner;
import java.util.InputMismatchException;
public class App {
public static void main(String[] args) {
int temp = 0;
System.out.println("Enter the number 5: ");
while (temp != 5) {
try {
temp = sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("Try again!");
}
}
System.out.println("Got it!");
sc.close();
}
}
【问题讨论】:
标签: java loops input while-loop