2013-01-20 35 views
0

我目前正在嘗試採取數組的元素,並在Java中顛倒它的順序。如何通過使用for循環向下計數而不改變數組中元素的實際排序來打印數組的元素?爲什麼我不能在Java數組上向下計數?

private void printArray(int[] array) { 
    for (int i = array.length; i >= 0; i--){ 
     println(array[i]); 
    } 
} 
+0

它應該是'array.length - 1'。數組長度告訴你總共有多少個元素 - 比如1個元素的數組有1個 - 但該數組只有一個位置0. – Makoto

回答

7

數組索引開始在0啓動和array.length - 1結束。在這裏,由於您的第一次讀取已經超過了數組的末尾(int i = array.length;),因此您會得到一個ArrayIndexOutOfBOundsException

務必:

for (int i = array.length - 1; i >= 0; i--) 
    println(array[i]); 
+0

@EdHeal:怎麼樣? – Makoto

1

嘗試

for (int i = array.length - 1; -1 != i; --i){ 

作爲索引從0

+1

爲什麼?-1!= i;'?他的比較看起來不錯。 –

+0

做平等或不平等比使用比較運算符便宜。 –

+2

@EdHeal你爲什麼這麼想?在大多數CPU上不是這樣。 – Jesper

相關問題