在while循环的情况下,有没有一种方法可以在用户未输入有效值的情况下显示错误消息

时间:2019-05-15 12:43:34

标签: java

我是Java编程的新手,所以我想知道是否有一种方法可以使用while循环的条件来停止使用无效值。

我正在编写一个程序,提示用户以整数形式输入标识号,然后使用扫描仪存储该值。

只是想知道是否有可能在for循环的条件下放置某些内容,如果输入类似字符串,double或char的内容,则会打印一条错误消息,这样我就不会得到Input Mismatch Exception。

像这样:

    identification = userId(in); //scanner


    while (identification (is not an integer)){
        System.out.println("Invalid Value, Please enter an integer");
        identification = userId(in);

2 个答案:

答案 0 :(得分:0)

更好的是,您可以写:

while ((identification = userId(in)) < 0) {
    System.out.println("blah ...");
}

假设如果输入不是整数,则userIn方法将返回一些负值。只要它不是有效的输入,就可以使无效的返回值随心所欲。

有些人不喜欢这种风格,因为它已经过时并且不习惯。但是,它曾经在C编程中很常见,并且没有任何隐含的不清楚或不好的东西。

答案 1 :(得分:0)

这应该按照您的要求进行。基本上,它是一个while循环,一直等到下一个输入为整数,然后继续执行代码。重要的部分是确保在in.next()循环内使用while而不是in.nextInt(),因为这些值可以是任何值。

    Scanner in = new Scanner(System.in);

    System.out.print("Enter an integer: ");
    while (!(in.hasNextInt()))
    {
        System.out.print("Integer not entered, please enter an integer: ");
        in.next();
    }
    int value = in.nextInt();

    System.out.println("The int was " + value);

    in.close();