以下のクラスQ1のように,0<a<6である整数の入力をScannerで求めたとき,aという文字を入力してInputMismatchExceptionを発生させたところ,再度入力を迫られずに無限ループと化してしまいました.
再度入力を迫るように適切に書き換えるにはどうすればいいのでしょうか.
自分は,while()での処理が悪さをしているような気がするのですが...
*************************************
import java.util.Scanner;
public class Q1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = 0;
do {
try {
System.out.print("Input an integer less than 6 and greater than 0:");
a = sc.nextInt();
} catch (InputMismatchException e) {
e.printStackTrace();
}
} while (a <= 0 || a >= 6);
System.out.println(a);
}
}
***************************************
お礼
うまくいきました. 本当にありがとうございました.