行走者iris
2017-02-17 14:44
do{
System.out.println("请输入第一名参赛者的信息:");
System.out.println("请输入参赛者ID:");
try{
flag = 0;
id = scanner.nextInt();
}catch(InputMismatchException e){
flag = 1;
System.out.println("输入的数据非整型,请重新输入!");
}
}while(flag == 1);
试试每次循环都使用一个新的scanner,像这样
do {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一名参赛者的信息:");
System.out.println("请输入参赛者ID:");
try {
flag = 0;
id = scanner.nextInt();
} catch (InputMismatchException e) {
flag = 1;
System.out.println("输入的数据非整型,请重新输入!");
}
} while (flag == 1);
我想达到的效果是,如果输入的不是整型,则打印提示,重新输入。现在的情况是,我首次输入为整型,那么不会报错,但是如果首次输入字符串,提示输入错误后,再输入整型,程序还是会进入catch里面捕获到异常。
报什么错
Java入门第三季
409776 学习 · 4546 问题
相似问题