int i;
Scanner sc = new Scanner();
while(true){
try{
i = sc.nextInt();
System.out.println(i);
}catch(InputMismatchException e){
System.out.println(e.toString());
}
}
输入:15
控制台打印出来的值为:15
程序正常执行
当输入其他非整型的类型
控制台会一直报错
java.util.InputMismatchException
java.util.InputMismatchException
...
这是因为Scanner匹配失败后,并没有把输入的信息扔掉,下次执行sc.nextInt()时读取上次输入的内容
只要在catch语句里把上次输入的内容读出来,加上一个sc.next()程序就能继续运行