for-each en Java
Rangez trois nombres entiers dans un tableau nommé slots : 2, puis 4, puis 6. Écrivez for (int n : slots) et affichez n entre les accolades. L'écran doit montrer trois lignes : 2, puis 4, puis 6. Sur cette page vous n'écrivez pas de compteur d'index. Chaque passage remet au nom n la valeur suivante du tableau. Ce parcours est ce que cette page enseigne.
Un nom pour chaque valeur du tableau
Créez un petit fichier de programme nommé Pack.java. La public class de la première ligne doit correspondre au nom du fichier : public class Pack. Ne laissez pas une ancienne classe Skip ou Pulse dans ce fichier ; le compilateur attend que le nom de classe et le nom de fichier concordent.
Dans main, rangez d'abord le tableau :
int[] slots = {2, 4, 6};
Cette ligne n'affiche rien. Elle garde seulement trois nombres entiers sous le nom slots. Ensuite la boucle for-each :
for (int n : slots) {
System.out.println(n);
}
Le mot for reste en minuscules. Dans les parenthèses se trouvent trois pièces avec des deux-points au milieu : le type int, le nom n pour un élément, puis les deux-points, puis le nom du tableau slots. Ces deux-points ne sont ni une étiquette case ni un séparateur de chemin. Ils marquent « chaque valeur de slots entre dans n ». Les accolades tiennent le corps. System.out.println(n); écrit la valeur actuelle sans guillemets autour de n. Enregistrez le fichier avant de compiler.
Programme qui affiche 2 puis 4 puis 6
Voici la version que vous compilez en premier.
public class Pack {
public static void main(String[] args) {
int[] slots = {2, 4, 6};
for (int n : slots) {
System.out.println(n);
}
}
}
Depuis le dossier qui contient Pack.java, lancez javac Pack.java. Quand les parenthèses, les accolades et les deux-points concordent, javac n'écrit aucune ligne de son côté. Puis lancez java Pack — pas java Pack.java. Laissez le .java hors de la seconde commande. Les deux mêmes commandes fonctionnent sur Windows et sur macOS ; cette page n'a pas besoin d'une orthographe de shell différente pour l'un ou l'autre système. Le programme doit afficher trois lignes et s'arrêter : 2, puis 4, puis 6. Il ne doit pas attendre que vous tapiez. Si le terminal attend une saisie clavier, un appel nextLine d'un ancien exercice est encore dans le fichier. Supprimez cet appel et gardez le tableau plus le for-each ci-dessus. Une mauvaise ligne à l'écran ne signifie pas qu'il faille réinstaller le JDK.
Parcourez une exécution complète dans l'ordre. slots contient 2, puis 4, puis 6. Le premier passage met n à 2 et println écrit 2. Le deuxième passage met n à 4 et écrit 4. Le troisième passage met n à 6 et écrit 6. Ensuite il n'y a plus de valeurs, donc la boucle se termine. Vous n'avez pas écrit int i = 0 ni i < slots.length sur cette page. L'en-tête for-each demande à Java de visiter chaque valeur stockée une fois. Le nom n est nouveau à chaque passage seulement au sens où il tient l'élément suivant ; vous le déclarez encore une seule fois dans l'en-tête comme int n.
Parcourir un tableau String de la même façon
Changez le tableau stocké et le type de l'élément pour que chaque valeur soit un mot court :
String[] tags = {"red", "blue"};
for (String t : tags) {
System.out.println(t);
}
Maintenant l'écran doit montrer deux lignes : red, puis blue. Les deux-points restent entre le type de l'élément et le nom du tableau. Le corps affiche encore le nom qui tient un élément.
public class Pack {
public static void main(String[] args) {
String[] tags = {"red", "blue"};
for (String t : tags) {
System.out.println(t);
}
}
}
Compilez et lancez à nouveau : javac Pack.java, puis java Pack. Vous devez voir deux lignes. Vous avez remplacé le tableau int par un tableau String et fait correspondre le type du nom d'élément à String. Après avoir vu red et blue, vous pouvez remettre la démo int. Les deux versions sont du Java valide. Elles enseignent la même forme for-each avec des genres d'éléments différents.
Relisez une fois le parcours String. tags contient red, puis blue. Le premier passage met t à red et l'affiche. Le deuxième passage met t à blue et l'affiche. Puis la boucle se termine. Les guillemets dans le littéral de tableau marquent le texte stocké. println(t) sans guillemets supplémentaires autour de t écrit ces lettres stockées à l'écran.
Règles qui gardent for-each clair
Les parenthèses doivent tenir type, nom, deux-points et nom du tableau dans cet ordre. Écrire for (int n slots) sans les deux-points fait échouer javac. Le type de l'élément doit convenir au tableau : int avec un tableau int, String avec un tableau String. Placer int n à côté d'un String[] n'est pas la forme que cette leçon compile. Les accolades tiennent encore le corps quand le corps a une ou plusieurs lignes.
for-each n'est pas le for compté de la page Beat, et ce n'est pas break de la page Skip. Le for compté écrivait début, test et pas avec un compteur. for-each parcourt des valeurs déjà stockées dans un tableau. break termine une boucle plus tôt ; la première démo de cette page affiche chaque valeur. Ne laissez pas une démo break de Skip ou un while de Pulse dans le même main et vous étonnez pourquoi l'écran montre 1 et 2 au lieu de 2, 4, 6. Le main de cette session ne doit tenir que le tableau et le for-each.
Une confusion fréquente consiste à afficher la syntaxe elle-même : System.out.println("for (int n : slots)");. Cela écrit les caractères de l'en-tête. Cela ne parcourt pas le tableau. Une autre confusion est System.out.println("n"); avec des guillemets, qui affiche la lettre n à chaque passage au lieu de 2, 4 et 6. Gardez println(n) sans guillemets quand vous voulez la valeur de l'élément à l'écran.
Si le tableau n'a aucun élément — par exemple int[] slots = {}; — le corps ne s'exécute jamais et l'écran reste vide. C'est encore un for-each valide ; les démos de cette leçon gardent au moins deux valeurs pour que vous voyiez les lignes affichées. Quand plus tard vous aurez besoin d'un numéro d'index à l'écran, le for compté revient ; for-each sert à visiter les valeurs sans gérer cet index vous-même. Changer une valeur dans la boucle avec n = 9; ne réécrit pas la case du tableau sur cette forme débutante — traitez n comme la valeur que vous lisez pour l'afficher, pas comme un outil pour modifier slots.
Ce que vous pouvez faire maintenant
Vous pouvez stocker un tableau, écrire for (Type name : arrayName), et afficher chaque valeur une fois. Faire correspondre le type de l'élément au tableau garde la boucle compilable. La page suivante est methods, où vous regroupez des lignes sous un nom que vous pouvez appeler depuis main.
🧠 Testez Vos Connaissances
Testez Vos Connaissances
Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet
📝 Instructions
- Lisez chaque question attentivement
- Sélectionnez la meilleure réponse pour chaque question
- Vous pouvez refaire le quiz autant de fois que vous le souhaitez
- Votre progression sera affichée en haut