问答详情
源自:7-1 简易扑克牌游戏

求大神指教,不知道哪里出了问题,如果首次输入的数据不是整型,后面就算输入整型也报错?

    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);


提问者:行走者iris 2017-02-17 14:44

个回答

  • ziom
    2017-02-17 15:47:41
    已采纳

    试试每次循环都使用一个新的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);


  • 行走者iris
    2017-02-17 15:36:54

    我想达到的效果是,如果输入的不是整型,则打印提示,重新输入。现在的情况是,我首次输入为整型,那么不会报错,但是如果首次输入字符串,提示输入错误后,再输入整型,程序还是会进入catch里面捕获到异常。

  • ziom
    2017-02-17 15:11:11

    报什么错