La boucle for-each permet d'exécuter un bloc de code pour chaque élément d'une collection.
Certaines documentations (comme celle d'Oracle) les appellent des boucles for améliorées.
Voici la syntaxe générale :
for(declaration: collection) {
body;
}
La partie declaration déclare la variable qui recevra les valeurs issues de la collection.
La partie collection est un tableau ou une collection qui contient les valeurs qui seront affectées à la variable de boucle.
La partie body contient les instructions qui seront exécutées une fois pour chaque valeur de la collection.
Par exemple :
char[] vowels = {'a', 'e', 'i', 'o', 'u'};
for(char vowel: vowels) {
System.out.println(vowel);
}
ce qui affiche :
a
e
i
o
u
En général, une boucle for-each est préférable à une boucle for pour les raisons suivantes :
for-each parcourt toutes les valeurs, sans exception.for-each est plus déclarative : le code exprime ce qu'il fait plutôt que comment il le fait.for-each est infaillible, alors qu'avec une boucle for, il est facile de se tromper d'une unité (pense à < par rapport à <=).for-each fonctionne avec tous les types de collections, y compris ceux qui ne permettent pas d'utiliser un indice pour accéder aux éléments (par exemple un Set).