我试图创建一个简单的程序,用户输入一个整数,如果它不是一个整数,它会打印出发生错误并且程序循环直到用户输入一个整数。我找到了这个 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!"); }}
1 回答
有只小跳蛙
TA贡献1824条经验 获得超8个赞
你很接近。
解析字符串比尝试从 获取 int 更容易失败,Scanner因为扫描器将阻塞,直到它获取int.
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!");
}
}
添加回答
举报
0/150
提交
取消