1

非稼働do-whileループがあります。intの代わりにStringを入力すると、「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);
4

1 に答える 1

7

誤った入力をクリアするsc.nextLine()には、ブロックで行う必要があります。int パターンと一致しない場合、呼び出しは入力をバッファーに残しますcatchnextInt()

于 2013-07-01T14:41:24.907 に答える