【发布时间】:2014-09-22 23:00:58
【问题描述】:
任务是使用一个 While 循环来获取第一个和最后一个数字,并找到它们之间的数字的平均值。我输入了代码,我认为它在数学上有效,但是当我尝试显示答案时(“答案是”+平均值),我一直收到错误消息,它一直说平均值尚未初始化。
public static void whileLoop()
{
int smallNumber = Integer.parseInt(JOptionPane.showInputDialog("Enter the smallest number:"));
int largeNumber = Integer.parseInt(JOptionPane.showInputDialog("Enter the largest number:"));
int counter = smallNumber;
int average;
int total = 0;
int numberCounter = 0;
while (smallNumber <= largeNumber)
{
total = counter + total;
counter = counter + 1;
numberCounter++;
average = total / numberCounter;
}
JOptionPane.showMessageDialog(null, "Answer is: " + average);
}
【问题讨论】:
-
试试
int average = 0;而不是int average; -
不需要循环。老师显然从未听说过高斯。
-
与问题无关,但您会陷入无限循环,因为小总是小于/等于大,或者当小大于大时您永远不会进入循环。此外,您不需要计算每一步的平均值,并且您的一个计数器是开销
-
你建议我如何解决这个问题?我是 Java 新手,完全不知道如何处理这个问题。
-
作为记录,我的非循环回答:
return (first+last)/2;