java - 我如何在处理异常的同时接受输入?

标签 java java.util.scanner

我想从用户那里获取一个整数输入。我正在使用 try-catch 异常,因此如果输入不是 int,它会要求用户进行另一个输入。我写了下面的代码:

   while (flag==true) {       
        try {    

            System.out.println("Enter the encryption key!");
            k = input.nextInt();
            flag = false;
        }
        catch (InputMismatchException ex) {
            System.out.println("Please enter integer value!(");


        } 
    }

但是当异常发生时循环继续打印

"Enter the encryption key!"
"Please enter integer value!"

无限,因为扫描仪输入不会等待另一个输入。

我该如何解决这个问题?

最佳答案

你可以尝试使用

input.nextLine()

因为它会一直等到您按下回车键。但是如果我没记错的话,你需要把它解析成一个整数。

关于java - 我如何在处理异常的同时接受输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27903798/

相关文章:

java - volatile 读取是否发生在 volatile 写入之前?

java - 如何在android studio中使用Java将数据对象列表作为接口(interface)传递?

Java加密: encrypt integer values

java - 如何从mysql中的两个表中获取值,其中一个表不同,另一个表多个值?

java - 在我可以解析用户的输入之前,IDE 会打印这两行

java - HashMap<String, Object> - 如何返回只有参数的对象?

java - 在 Scanner.nextInt() 之后使用 Scanner.nextLine()

java - BASH 脚本将值输入 Java 扫描器

java - 在java中从数组中查找最小值

java - 将用户的字符串输入限制为字母和数字值