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);
用户输入字母时出现错误后程序立即结束 我需要在它之后循环它
最佳答案
由于您尚未发布对我的问题的任何答案,因此这是一个猜测答案,但我很确定问题如下:
进入循环时,child
变量的值肯定为 0 或更大。当尝试将 String
转换为 int
时,child
的值当然不会改变,因此测试未完成。
这是在 catch
子句中使用的一个简单技巧:
catch(InputMismatchException e){
input.next();
System.out.println("(Invalid Input! Enter a numeric Value");
child = -1;
}
只需将 child
设置为小于 0
,这样当您捕获异常时,它总是会循环回来。
关于java - 需要帮助 输入字母时循环此操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33441961/