class Example {
public static void main(String args[]) {
double nums[] = {10.1, 11.2, 12.3, 13.4, 14.5};
double result = 0;
int i;
for(i=0; i<5; i++)
result = result + nums[i];
System.out.println("Average is " + result / 5);
}
}
很抱歉,如果这个问题太愚蠢而无法提问,但我需要知道。为什么我们要声明double result = 0? 为什么写结果=结果+ nums [i]?为什么我们不能写只是结果= nums [i]?
答案 0 :(得分:2)
为什么我们必须声明double result = 0?
这是因为你的结果变量是一个块变量,这意味着 你需要先将它初始化才能使用它。
为什么写结果=结果+ nums [i]?为什么我们不能写只是结果= nums [i]?
result = nums [i] 仅指定变量中的值 结果=结果+ nums [i] 指定结果和 nums [i] 的总和值。
你也可以使用它。
result += nums[i];
而不是这个。
result = result + nums[i];
答案 1 :(得分:1)
撰写result = nums [i]
会将nums[i]
的值分配给result
,而撰写result = result + nums[i]
则会指定当前值result
加nums[i]
到result
。
因此,每次循环播放时,您都将nums[i]
的值添加到result
,而不是替换它。
声明result = 0
只是将result
初始化为值0。
答案 2 :(得分:0)
好的!好的!好吧!,就是这样。一个简单的解释 -
假设您在 for-loop 中写入 result = num [i] 。
在for循环中的迭代期间,你在写 System.out.println(“Average is”+ result / 5);
结果输出将是 -
For Iteration 1 - Average is 10.1/5
For Iteration 2 - Average is 11.1/5
For Iteration 3 - Average is 12.3/5
and So on.. for next two iterations.
正如你所看到的,他们并没有加起来。它只是划分你的数组的索引值并打印它。 因此,要添加数组的索引值,您需要 result = result + nums [i]
现在,这是一个扭曲。因为,您正在编写 result = result + nums [i] ,因此更新结果值。对于第一次迭代,将没有先前的结果值。 自上次值未知以来没有更新。因此,您自己编译错误。