2012-10-31 83 views
0

我從我的講義中有下面的示例代碼。基本數組和循環Java

int[] a = new int[3]; 
a[0] = 1; 
for (int i = 1; i < a.length; i++) {  
    a[i] = a[i-1] + i; 
} 

而且我假定這將運行下面的代碼後返回

[1,2,3] 

因爲循環從1開始並計數到3。當第一環狀被執行我的assinged爲1[1-1]+1,結果是1和明年i成爲2和結果是2.....

我沒想到a[0]=1;在做什麼了。 但我不確定這是否正確。

可以和一個告訴我,如果我的假設是正確的,請嗎?

+1

'一個[I-1] + 1 = [1-1] + 1' ...'一個[I-1]'是1 =>' 1 + i'爲2. – assylias

+0

通過循環逐步回顧第二次迭代。另外,'a [0] = 1;'是將數組中的第一個值賦值爲1,因此在確定每次迭代過程中發生了什麼時,請確保將其考慮在內。 – Briguy37

+0

我建議你逐步調試調試器中的代碼,以查看每行代碼的功能。 –

回答

5

那麼,不完全:

i | a[i-1] | a[i] = a[i-1] + i 
----+-------------+------------------ 
1 | a[0] = 1 | a[1] = 1 + 1 = 2 
2 | a[1] = 2 | a[2] = 2 + 2 = 4