2013-01-20 2 views
0

J'essaie actuellement de prendre les éléments d'un tableau et d'inverser son ordre en Java. Comment se fait-il que je ne puisse pas imprimer les éléments du tableau en comptant vers le bas en utilisant une boucle for sans changer l'ordre réel des éléments dans mon tableau?Comment se fait-il que je ne puisse pas compter à la baisse sur un tableau en Java?

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

Il devrait être 'array.length - 1'. La longueur du tableau vous indique globalement combien d'éléments sont présents - comme un tableau avec 1 élément a 1 - mais ce tableau aurait seulement une position 0. – Makoto

Répondre

7

indices de tableau commencent et se terminent à 0array.length - 1. Ici, vous obtenez un ArrayIndexOutOfBOundsException puisque votre première lecture est après la fin du tableau (int i = array.length;).

Do:

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

@EdHeal: Comment ça? – Makoto

1

Essayez

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

Comme index commence à 0

+1

Pourquoi '-1! = I;'? Sa comparaison semble correcte. –

+0

Faire une égalité ou une non-égalité est moins cher que d'utiliser l'opérateur de comparaison. –

+2

@EdHeal Pourquoi pensez-vous cela? Ce n'est pas vrai sur la plupart des processeurs. – Jesper

Questions connexes