java - 为什么我有一个永无止境的 do-while 循环?

标签 java loops do-while

我有一个不工作的 do-while 循环。当我输入 String 而不是 int 时,它应该说“bla”并再次要求插入数字,但它却一遍又一遍地发送消息文本。这段代码有什么问题?

    boolean i = true;
    do {
       i = false;  

       try {
           System.out.println("insert number");
           int k = sc.nextInt();  
       }
       catch(InputMismatchException e) {
           System.out.println("test");
           i = true;
       } 
   } while ( i== true);

最佳答案

您需要在 catch block 中执行 sc.nextLine() 以清除错误输入。 nextInt()如果输入与 int 模式不匹配,调用会将输入留在缓冲区中。

关于java - 为什么我有一个永无止境的 do-while 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17407044/

相关文章:

java - 用于从数据库进行人脸检测和识别的计算机视觉应用程序(+Web 界面)

java - 连接断开时 URLConnection 对象将返回什么

c# - 循环删除列表中的多个项目...c#

java - 如何打印 'while' 的执行次数?

c - C中哪个循环更快? while 循环或 do-while 循环

java - 无法转换 org.apache.batik.bridge.UpdateManager

java - InetAddress 无法解析为类型

javascript - 如何订购数组中的项目?

c++ - 在 C++ 中循环不正确

c++ - 引用、逻辑运算符和循环条件