nextInt方法在发生异常后,不再接受用户输入的任何数据,而是徘徊在异常区域,如果外部使用死循环,从而导致死循环发生。
改用nextLine搭配NumberFormatException即可。
Scanner keyboard = new Scanner(System. in );
for (;;) {
System.out.println("输入1个整数: ");
try {
userAnswer = Integer.parseInt(keyboard.nextLine().trim());
break;
} catch (NumberFormatException nfe) {
System.out.print("输入数据类型错误!你必须输入数值数据!\n");
continue;
}
}
keyboard.close();
写一个方法,进行递归调用,keyboard.close();这一句删掉, catch代码块里面就是写递归调用的方法,用 方法名();这个方式调用