我想检查用户通过终端输入的数据是否是程序中所需的正确类型。如果不是,则代码应循环,以便在继续下一步之前再次请求数据。
例:
终端中的消息如下:
输入号码:
并且用户输入一个字符串,例如
是的
如何循环程序并再次询问数字,直到用户输入类型 double
的数字?
到目前为止,代码是:
System.out.println("Enter number:");
double number = scanner.nextDouble();
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.
}
当你使用
Scanner
时,你可以使用 Scanner.hasDouble()
.为了确保您确实获得有效的双精度值,需要一些循环机制:
boolean numberFound = false;
while (!numberFound) {
if (input.hasNextDouble()) {
number = input.nextDouble();
numberFound = true;
} else {
System.out.println("Invalid double " + input.next());
}
}