为什么这不起作用?我正在尝试编写一个小程序,提示用户输入任何double值

时间:2014-10-14 02:15:52

标签: java macos netbeans

所以我必须提示用户输入任何双值,如果它不是我想要的双倍值 刷新缓冲区然后提示用户输入另一个值,然后打印该值为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);

2 个答案:

答案 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);
相关问题