2012-07-15 102 views
5

我仍然從java開始 - 任何指導都會很棒。我基本上希望能夠創建一個數組,然後在for循環中爲該數組賦值。我目前的代碼是:在for循環中分配一個數組的值java

int i; 
int[] testarray = new int[50]; 

for (i = 0; i <=50; i++) { 
testarray[i]=i; 
} 

所有我想要做的就是讓每個條目的迭代次數(使用此方法) 我知道它很簡單數組,但我覺得,如果我在學習基礎知識時錯過了一些重要的東西! 謝謝!

+0

你現在的代碼有什麼問題?我看起來很好。 – Antimony 2012-07-15 20:01:08

回答

10

一切都很好,除了停止條件:

for (i = 0; i < 50; i++) { 

由於你的數組的大小爲50,並且指數從0開始,最後的指數是49.

你應該減少i範圍,避免硬編碼的長度無處不在(不要重複自己的原則),並尊重駝峯命名約定:不是硬編碼的

int[] testArray = new int[50]; 

for (int i = 0; i < testArray.length; i++) { 
    testArray[i]=i; 
} 
+0

完美 - 非常感謝。簡直不敢相信我會錯過! – 2012-07-15 20:03:14

+0

閱讀錯誤消息並嘗試理解它們的含義,而不是將它們視爲錯誤標誌。錯誤消息可能是這樣說的:ArrayOutOfBoudsException,並且可能告訴了你試圖訪問的索引,但是超出了範圍。 – 2012-07-15 20:07:14

6

你的數組有50個元素,你的循環遍歷51個元素(0到50)。

代碼只是更改爲:

int[] testarray = new int[50]; 

for (int i = 0; i < 50; i++) { 
    testarray[i] = i; 
} 

或更好:

int[] testarray = new int[50]; 

for (int i = 0; i < testarray.length; i++) { 
    testarray[i] = i; 
} 
+0

另外,您可以將i的聲明移到for循環中,而不是循環之外。 – 2012-07-15 20:03:27

+0

@kevin,你是對的:) – lhlmgr 2012-07-15 20:04:01

0

數組的長度使用50.

for (i = 0; i <testarray.length; i++)