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

时间:2013-07-01 14:35:59

标签: 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);

1 个答案:

答案 0 :(得分:7)

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