猿问

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

我试图创建一个简单的程序,用户输入一个整数,如果它不是一个整数,它会打印出发生错误并且程序循环直到用户输入一个整数。我找到了这个 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!");

    }

}


回首忆惘然
浏览 213回答 1
1回答

有只小跳蛙

你很接近。解析字符串比尝试从 获取 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!");    }}
随时随地看视频慕课网APP

相关分类

Java
我要回答