Scanner类的匹配失败问题

来源:互联网 发布:网络征文比赛2017 编辑:程序博客网 时间:2024/06/17 15:42

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()程序就能继续运行

原创粉丝点击