所以我有一个名为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次读,然后我计算每次读取文件需要多长时间并平均总时间。但我一直把我的最后一次作为平均值而不是实际平均值。
答案 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,因此实际上它将永远运行。也许你有不同的意图 - 在这种情况下,请更清楚。