我正在尝试制作一个简单的 UI,要求用户输入双精度类型的数字,如果他们的输入不是双精度类型,则程序应继续打印提示,直到用户输入有效的双精度类型。我下面的代码还不能正常工作,因为当用户键入有效的双精度类型时,除非用户键入另一个双精度类型数字,否则程序不会执行任何操作。我猜 while 循环中的条件 (sc.hasNextDouble()) 消耗了第一个有效输入。如何纠正这个?多谢
Scanner sc = new Scanner(System.in);
System.out.println("Type a double-type number:");
while (!sc.hasNextDouble())
{
System.out.println("Invalid input\n Type the double-type number:");
sc.next();
}
userInput = sc.nextDouble(); // need to check the data type?