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里面捕获到异常。
报什么错