我想知道为什么在这个例子中,值[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];
答案 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 = 1
:values[1]
= 1 + values[0]
时(使用默认int
值初始化为0,如上所述)= 1。强> i = 2
:values[2]
= 2 + values[1]
= 2 + 1 = 3时 i = 3
:values[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开始;