结果=结果+ [i]?

时间:2016-11-08 05:11:29

标签: java loops

 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]?

3 个答案:

答案 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]则会指定当前值resultnums[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] ,因此更新结果值。对于第一次迭代,将没有先前的结果值。 自上次值未知以来没有更新。因此,您自己编译错误。