当前位置: 首页 > 知识库问答 >
问题:

在用户给出错误的输入值后,要求用户再次输入该输入。InputMismatchException?

怀刚毅
2023-03-14

我创建了以下类,用于输入用户的年龄,然后在控制台中显示适当的信息。

运行此程序时,控制台会询问“请输入您的年龄:”

public class ExceptionHandling{

    static Scanner userinput = new Scanner(System.in);

    public static void main(String[] args){ 
        int age = checkAge();

        if (age != 0){
            System.out.println("Your age is : " + age);         
        }else{
           System.out.println("Age should be an integer");
           age = checkAge();
        }
    }

    public static int checkAge(){
        try{            
            System.out.print("Please Enter Your Age :");
            return userinput.nextInt();
        }catch(InputMismatchException e){
            return 0;
        }
    }
}

共有1个答案

蒋俊
2023-03-14

如果希望代码多次执行(直到用户输入有效的时间),则应将其放入循环中:

public static void main(String[] args)
{
    int age = checkAge();
    while (age == 0) {
       System.out.println("Age should be an integer");
       userinput.nextLine();
       age = checkAge();
    }

    System.out.println("Your age is : " + age);
}
 类似资料:
  • 假设我希望用户提供4个输入,但它只提供3个。预期=给定= 如何避免这个错误?请帮帮忙

  • 我希望“请输入一个带有字母S的句子”循环,直到用户输入字母“S”

  • 我有一个简单的java程序,接受3个用户输入类型的整数,双和字符串。我想知道对所有这些输入执行错误处理的最佳/最有效的方法,以保持程序运行,通知用户他们输入了一个错误的输入,并再次问他们这个问题。任何帮助都将不胜感激。 这是我的代码

  • 问题内容: 我遇到一种情况(在硒测试期间),在这种情况下,用户将收到安全代码。然后,用户必须先输入安全密码,然后才能继续操作。 我不太确定如何获得用户输入的值。我浏览了硒文档,并提出了这个建议。不幸的是,它并不是很有效。 有人可以指出我正确的方向吗? 问题答案: 似乎您必须先接受并关闭提示,然后才能存储和使用该值

  • 问题内容: 我有一种情况(在selenium测试期间),在这种情况下,用户将收到安全代码。然后,用户必须先输入安全代码,然后才能继续操作。 我不太确定如何获得用户输入的值。我浏览了selenium文档,并提出了这个建议。不幸的是,它并不是很有效。 有人可以指出我正确的方向吗? 问题答案: 似乎您必须先接受并关闭提示,然后才能存储和使用该值

  • 我正在尝试编写一个方法。我被告知切换骰子[]中的值(骰子只有5个索引),用户要求更改的指定索引中的值(表示哪个die)需要用1到6的随机数交换。 是生成这六个数字的函数。注意:除了整数1到6和两个相同的整数以外的任何其他都是无效输入。 结果与输入相同。我就是搞不清楚它有什么错误。我还想使用for循环来限制最多四次的输入。如果这是个好主意,我不会。我试着那样做,但它总是执行四次。我希望每当用户按回车