所以我必须提示用户输入任何双值,如果它不是我想要的双倍值 刷新缓冲区然后提示用户输入另一个值,然后打印该值为double。
double value;
Scanner sc = new Scanner(System.in);
System.out.println("Enter any double value: ");
value = sc.nextDouble();
while (!sc.hasNextDouble())
{
sc.nextLine();
System.out.println("Enter a valid value: ");
value = sc.nextDouble();
}
System.out.println(value);
答案 0 :(得分:1)
交换循环的顺序,
// value = sc.nextDouble();
while (!sc.hasNextDouble()) // <-- while we don't have a double
{
sc.nextLine();
System.out.println("Enter a valid value: ");
// value = sc.nextDouble();
}
value = sc.nextDouble(); // <-- here
答案 1 :(得分:0)
我建议使用do while循环来节省必须在代码中的两个位置输入。然后,确保在循环之外分配值变量。
double value;
Scanner sc;
do{
System.out.println("Enter any double value: ");
sc = new Scanner(System.in);
}while(!sc.hasNextDouble());
value = sc.nextDouble();
System.out.println(value);