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

来源:7-1 简易扑克牌游戏

行走者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);


写回答 关注

3回答

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


    行走者iri...

    我试过已经ok了,谢谢你了。

    2017-02-17 16:06:01

    共 1 条回复 >

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

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

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

    报什么错

    行走者iri...

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

    2017-02-17 15:37:40

    共 1 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题