有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么我有一个无休止的dowhile循环?

我有一个不工作的do-while循环。当我输入一个字符串而不是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);

共 (1) 个答案

  1. # 1 楼答案

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