我想检查用户通过终端输入的数据是否是程序所需的正确类型。如果不是,代码应该循环,以便在继续下一步之前再次询问数据。
例子:
终端中的消息如下:
输入号码:
并且用户输入一个字符串,例如
是的
如何循环程序并再次询问数字,直到用户输入数字类型double
?
到目前为止的代码是:
System.out.println("Enter number:");
double number = scanner.nextDouble();
我想检查用户通过终端输入的数据是否是程序所需的正确类型。如果不是,代码应该循环,以便在继续下一步之前再次询问数据。
例子:
终端中的消息如下:
输入号码:
并且用户输入一个字符串,例如
是的
如何循环程序并再次询问数字,直到用户输入数字类型double
?
到目前为止的代码是:
System.out.println("Enter number:");
double number = scanner.nextDouble();
当您使用Scanner
时,您可以使用Scanner.hasDouble()
. 为了确保你得到一个有效的双精度,一些循环机制是必要的:
boolean numberFound = false;
while (!numberFound) {
if (input.hasNextDouble()) {
number = input.nextDouble();
numberFound = true;
} else {
System.out.println("Invalid double " + input.next());
}
}
double number;
try
{
number = scanner.nextDouble();
number = parseDouble(inputString);
}
catch(NumberFormatException nfe)
{
System.out.println("Please enter a valid double!");
number = scanner.nextDouble();
number = parseDouble(inputString);
// if the input is not valid again, you need a loop, rethink.
}