On parcourt un tableau à l'aide de la classique boucle "for" disponible dans tous les langages de programmation.
String hobbits[] = {"Frodon", "Sam", "Merry", "Pippin"}; for (int i = 0; i < hobbits.length; i++) { System.out.println(hobbits[i]); }
Bien que mise au point pour parcourir des structures plus complexes, la boucle for dite "améliorée" (appelée aussi for-each ou for-in), permet également le parcours d'un tableau ordinaire. Le but de cette nouvelle boucle for est tout simplement de rendre le code plus lisible.
Voyons d'abord comment se fait le parcours d'un tableau de type primitif avec un for traditionel. Dans l'exemple suivant, on calcule la somme des éléments d'un tableau d'entiers.
// déclaration et création du tableau int tab[] = { 1, 2, 3, 4, 5 }; int somme = 0; // boucle "for" traditionnelle for (int i = 0; i < tab.length; i++) { somme = somme + tab[ i ]; }
Voyons maintenant avec la version améliorée du for :
for (int n : tab) { somme = somme + n; }
À chaque tour de boucle, le contenu d'une cellule du tableau tab est copié dans la variable n.
Bien que donnant un code plus simple, cette forme de boucle for est plus limitée. Premièrement, le tableau est obligatoirement parcouru du début à la fin (de l'élément 0 à l'élément n - length). Il est donc impossible de faire un parcours partiel ou de se déplacer à reculons dans le tableau.
Deuxièmement, le contenu du tableau ne peut être modifié pendant le parcours (pas d'affectation), puisque la variable n n'est qu'une copie du contenu de la cellule du tableau. Il n'est donc pas possible, par exemple, d'incrémenter la valeur de chaque élément du tableau.