このコードが期待どおりに動作しないのはなぜですか?Whileループでスキャナを使用
public class FinalTest {
public static void main (String [] args) {
Scanner in = new Scanner(System.in);
int k = 0;
boolean askForInput = true;
while (askForInput) {
System.out.print("Enter an integer: ");
try {
k = in.nextInt();
askForInput = false;
} catch (InputMismatchException e) {
System.out.println("ERR: Not an integer!!");
}
}
}
}
nextInt()
はintとして入力をスキャンしようとすると、それがint型でない場合、それは例外ERRスローする必要があります:ない整数。何がバグですか、どうして入力を再度促さないのですか? ERRメッセージを画面に表示し続けます。
Aあなたは、私はそれがreduntantない作るために キャッチ内System.out.print("Enter an integer: ");
を入れて見ることができます。これは正しいフォームで
エラーメッセージ –
を印刷した後に '' in.nextLine(); ''を追加してみてください!ありがとう! – py9