需要帮助输入字母时循环播放

时间:2015-10-30 17:45:49

标签: java validation loops

            do{
                try{
                    System.out.println("Enter the no of People");  
                    child = input.nextInt();
                    if(child < 0){
                        System.out.println("Enter a Positive Value");
                    }
                }
                    catch(InputMismatchException e){
                        input.next();
                        System.out.println("(Invalid Input! Enter a numeric Value"); <---- Will give out the error if user enters a character
                    }
            }while(child < 0);  

当用户输入字母表时,程序在错误发生后结束 我需要在它之后循环它

1 个答案:

答案 0 :(得分:1)

由于您没有在我的问题上发布任何答案,这里有一个猜测答案,但我很确定问题如下:

进入循环时,child变量的值肯定为0或更大。在尝试将String转换为int时,child的值当然不会改变,因此测试未得到满足。

这是在catch子句中使用的简单技巧:

catch(InputMismatchException e){
    input.next();
    System.out.println("(Invalid Input! Enter a numeric Value");
    child = -1;
}

只需将child设置为小于0,这样当您捕获异常时,它将始终循环返回。