如何防止用户输入除int外的任何内容

时间:2018-11-05 17:48:39

标签: java

我试图创建一个简单的程序,在该程序中,用户输入一个整数,如果不是整数,则打印出一个错误,程序循环运行直到用户输入一个整数。我找到了这种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 个答案:

答案 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!");
    }

}