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

Ped*_*sta 1 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);
Run Code Online (Sandbox Code Playgroud)

Rus*_*ser 7

你需要sc.nextLine()catch块中清除错误的输入.的nextInt()通话将离开输入缓冲区,如果它不INT模式相匹配.

  • 提示:*i*已经是布尔值,所以你不需要(i == true).而是使用while(i). (2认同)