平均while循环中的值

时间:2015-04-25 01:44:32

标签: java

所以我有一个名为gettSeconds的公共访问器方法,我在while循环中调用它的次数低于20次:

int i =0;
double sum = 0;
double average =0;
while (i < 20) {
        call.read();
        sum = sum + call.getSeconds();
        System.out.println(sum);
        average = sum / 10.0;
}

所以基本上我打了20次读,然后我计算每次读取文件需要多长时间并平均总时间。但我一直把我的最后一次作为平均值而不是实际平均值。

2 个答案:

答案 0 :(得分:1)

你应该在计算所有值之后计算平均值:

int i = 0;
int sum  = 0;
int average = 0;
while (i < 20) {
    call.read();
    sum = sum + call.getSeconds();
}
average = sum / 20.0;

我们可以使用for循环和+=运算符来简化此操作:

int sum = 0;
for (int i = 0; i < 20; i++) {
    sum += call.read().getSeconds();
}
int average = sum / 20.0;

答案 1 :(得分:1)

我被引诱改变更多 - 但是尽可能保留原作 - 你可能想做这样的事情?

double sum = 0;
double average =0;
for (int i=0; i < 20; i++) {
  call.read();
  sum = sum + call.getSeconds();
}
average = sum / 20.0;
System.out.println(average);

请注意,对于原始while (i < 20) - 条件始终为true,因此实际上它将永远运行。也许你有不同的意图 - 在这种情况下,请更清楚。