【发布时间】:2012-09-16 08:40:41
【问题描述】:
大家好,所以我一直在尝试为我的 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.
【问题讨论】:
-
一个建议:如果在某些时候你认为“程序不遵循逻辑或者我在实现逻辑时犯了一些错误”,后一个答案通常是正确的。
标签: java loops while-loop