java - 需要帮助 输入字母时循环此操作

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

用户输入字母时出现错误后程序立即结束 我需要在它之后循环它

最佳答案

由于您尚未发布对我的问题的任何答案,因此这是一个猜测答案,但我很确定问题如下:

进入循环时,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/

相关文章:

Java Python 集成

java - 有没有办法在使用 Spring 或 Spring Boot 的 JUnit 测试中使用 Autowired 构造函数?

java - 2 个分离的对象由于某种原因连接在一起

java - Eclipse 光标变为十字准线

Android 上的 Javascript onKeyPress 键代码始终为 0

java - jsf 验证消息中的组分隔符

java - Vaadin 中组合框的 validator

java - 使用 for 循环实现 max 的奇怪问题

php - 'simplexml' php 到 mysql 数据库循环只返回第一个元素

javascript - 使用 for...of 循环删除数组项