繁体   English   中英

虽然环境仍在继续,但环路仍在继续

[英]While Loop Continues Despite Condition Being Met

嘿大家所以我一直在努力为我的CS课程编写一个非常简单的计数程序,但由于某种原因,它不断吐出“请输入一个数字(0停止):”提示,似乎完全忽视while循环。 如果满足while循环内的条件,为什么即使输入0,while循环也不会停止? 我以前做过C#,但我并不熟悉Java的注意事项,所以如果Java不喜欢我做任何奇怪的事情,请告诉我。 对于程序的更详细描述,它应该从用户读取负数和正数,分别输出负数和正数的总和,然后取平均值。 (显然下面只是有问题的一段代码。)

 Scanner scanner = new Scanner(System.in);
    double average;
    double numPositive=0.0;
    double numNegative=0.0;
    double input = 0.0;
    do 
    {
        System.out.print("Please enter a number (0 to stop): ");
            input = scanner.nextDouble();   
        if (input < 0.0)
        {
            numNegative += scanner.nextDouble();

        }
        else if (input > 0.0)
        {
            numPositive += scanner.nextDouble();

        }

    } while (Math.abs(input) > 1.0e-6);  // make the tolerance whatever you want.

在初始分配后你永远不会改变input ; 循环将永远持续下去。 我想你忘了再次调用scanner.nextDouble()

最初检索后你没有收到input

您的numNegative scanner.nextDouble()分配给numNegativenumPositive - 这两个都没有被while循环检查。

while (input != 0.0)
    {
        System.out.print("Please enter a number (0 to stop): ");
        input = scanner.nextDouble();

        if (input < 0.0)
        {
            numNegative += input;

        }
        else if (input > 0.0)
        {
            numPositive += input;

        }

    }

你是不是值分配给input你的循环内的任意位置。 因此,初始值仍然存在,循环不会退出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM