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

当用户输入一个字符串时,如何重新提示用户输入一个有效的输入(Java)[重复]

吴子昂
2023-03-14

当用户输入字符串(例如“30”)时,程序应该给出输出“invalid input”,然后提示用户键入有效输入。当我键入字符串时,我会在线程“main”java.util.InputMismatchException中得到错误消息异常。

 public static void main(String[] args) {
    double wallHeight = 0.0;

    boolean valid = true;

    // Implement a do-while loop to ensure input is valid
    // Prompt user to input wall's height
    do {
        System.out.println("Enter wall height (feet): ");
        wallHeight = scnr.nextDouble();
        valid = true;
        if (wallHeight <= 0) {
            System.out.println("Invalid Input");
            valid = false;
        }
     } while (!valid);  

共有1个答案

阚英武
2023-03-14

根据scanner.nextdouble()的文档:

InputMisMatchException-如果下一个令牌与浮动正则表达式不匹配,或者超出范围

这意味着如果用户键入非数字字符,nextdouble()将抛出此异常。

 类似资料:
  • 所以我把Java作为数学学位要求的一部分,并且偶然发现了这个代码的一个问题。本质上,代码应该从用户那里接收数字,直到他们键入零。只要只输入数字,它就可以正常工作。但是,如果用户输入一个字母或符号,程序就会得到一个异常。有没有一种简单的方法可以验证用户输入的数字而不会得到异常? 所以我已经尝试了你展示的尝试/捕捉。但我还是遇到了非数字的例外。输入代码如下:

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

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

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

  • 问题内容: 我正在编写一个提示输入的函数,然后根据输入返回不同的结果,然后再次要求输入。我已经得到它返回正确的值,但是我不确定如何使它再次提示输入。 这是该函数的实际代码: 在其中包含return的每一行中,它只是在调用先前定义的函数。的和是词典,前面所定义。 我只能使用内置函数。 问题答案: 我会用while循环来做。像这样:

  • Employee(String firstName,String lastName,String address,String phoneNum,intemployeeidnum,double wageRate,double hours); JOptionPane允许我为每个变量创建单独的输入提示窗口,但这是很多窗口。我试图在一个窗口中包含所有信息,这样用户就可以填写所有7个变量,而不必点击OK/