了解循环和数组索引

时间:2016-10-20 17:27:36

标签: java arrays for-loop

我想知道为什么在这个例子中,值[3]是6而不是5。

当i = 3时,不应将[i]值3加到2(3-1)中给出5?

int[] values = new int[5];
for (int i = 1; i < 5; i++)
   values[i] = i + values[i-1];

4 个答案:

答案 0 :(得分:3)

进行了以下分配:

values[1] = 1 + 0 (= 1)
values[2] = 2 + 1 (= 3)
values[3] = 3 + 3 (= 6)
...

所以value[3]确实是6。

答案 1 :(得分:3)

首先,请阅读default values。 如上所述,int类型的默认值为0。

因此,当您在第一行初始化int数组时:

   int[] values = new int[5];

您创建一个大小为5的数组,默认情况下保存零值:values = {0,0,0,0,0}

现在,让我们继续讨论手中的迭代:

  • i = 1values[1] = 1 + values[0]时(使用默认int值初始化为0,如上所述)= 1。
  • i = 2values[2] = 2 + values[1] = 2 + 1 = 3时
  • i = 3values[3] = 3 + values[2] = 3 + 3 = 6时

答案 2 :(得分:0)

这是循环运行后的数组值,下面是索引:

[0][1][3][6][10]
 0  1  2  3  4

所以当循环到达i = 3时,这样:

values[3] = 3 + values[3-1];

与说

相同
values[3] = 3 + 3 

因为索引2处的值的值是3

答案 3 :(得分:-2)

int [] values = new int [5];

&lt; =====在此指数5处,值为6(0,1,2,3,4,5)

索引是6,因为索引从0开始;