Scanner sc = new Scanner(System.in);
while(true) {
try {
System.out.println("数値を入力してください。");
int num = sc.nextInt();
System.out.println(num);
break;
} catch(InputMismatchException e) {
System.out.println("不正な入力です。");
}
}
これで文字などを入力すると、たぶん無限ループすると思います笑
これ、探してみたら知恵袋に上がってましたね。
javaのtry~catchの無限ループ
なるほど、Scannerだとバッファに溜めたままなのか、ふむふむ。
ということで、上のコードは
Scanner sc = new Scanner(System.in);
while(true) {
try {
System.out.println("数値を入力してください。");
int num = sc.nextInt();
System.out.println(num);
break;
} catch(InputMismatchException e) {
System.out.println("不正な入力です。");
sc.next();
}
}
とすれば良いみたいです。勉強になりました。