0

我想检查用户通过终端输入的数据是否是程序所需的正确类型。如果不是,代码应该循环,以便在继续下一步之前再次询问数据。

例子:

终端中的消息如下:

输入号码:

并且用户输入一个字符串,例如

是的

如何循环程序并再次询问数字,直到用户输入数字类型double

到目前为止的代码是:

System.out.println("Enter number:");
double number = scanner.nextDouble();
4

2 回答 2

1

当您使用Scanner时,您可以使用Scanner.hasDouble(). 为了确保你得到一个有效的双精度,一些循环机制是必要的:

boolean numberFound = false;
while (!numberFound) {
   if (input.hasNextDouble()) {
    number = input.nextDouble();
    numberFound = true;
   } else {
    System.out.println("Invalid double " + input.next());
   }
}
于 2012-11-17T21:29:13.840 回答
1
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.
}
于 2012-11-17T21:21:25.313 回答