我试图创建一个简单的程序,在该程序中,用户输入一个整数,如果不是整数,则打印出一个错误,程序循环运行直到用户输入一个整数。我找到了这种try-catch解决方案,但无法正常工作。如果用户不输入整数,程序将无限循环。
正确的解决方案是什么?
Scanner input = new Scanner(System.in);
int number;
boolean isInt = false;
while(isInt == false)
{
System.out.println("Enter a number:");
try
{
number = input.nextInt();
isInt = true;
}
catch (InputMismatchException error)
{
System.out.println("Error! You need to enter an integer!");
}
}
答案 0 :(得分:0)
您关闭。
解析字符串失败比尝试从Scanner
获取int容易,因为扫描程序将阻止直到它得到int
。 / p>
Scanner input = new Scanner(System.in);
int number;
boolean isInt = false;
while (isInt == false) {
System.out.println("Enter a number:");
try {
number = Integer.parseInt(input.nextLine());
isInt = true;
} catch (NumberFormatException error) {
System.out.println("Error! You need to enter an integer!");
}
}