我是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);
答案 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();