Introduction à la boucle For-Each en Java
Pour chaque boucle a été introduite en Java à partir de JDK 5. Elle vise à itérer séquentiellement à travers tous les éléments d'une Collection ou d'un tableau. Il est également présent dans d'autres langages comme C #, où il utilise le mot-clé for-each. Cependant, Java utilise le mot clé 'for' uniquement pour implémenter une boucle pour chaque contrairement à C # mais sa syntaxe diffère de la conventionnelle pour une boucle. Cette boucle pour chaque est également appelée boucle améliorée pour Java.
Syntaxe
for(type iter_var : Collection) statement_block
L'explication de chacun des termes utilisés ci-dessus est la suivante:
- 'type' indique le type de données des objets du
- 'iter_var' indique le nom de la variable d'itération qui stocke chaque valeur de la collection pendant que nous parcourons la boucle.
- 'Collection' spécifie la collection ou le tableau à travers lequel nous voulons itérer.
- 'instruction-block' est l'ensemble des instructions que nous voulons exécuter pour chaque itération de la boucle.
Il est essentiel de noter que la boucle for-each accède séquentiellement aux éléments collection / tableau où elle stocke la valeur de chaque élément dans la variable d'itération. Voici l'organigramme de la boucle for-each.
Comme vous l'avez remarqué, il existe certaines différences subtiles entre la boucle for et la boucle for-each. Pour la boucle, le nombre d'itérations doit être spécifié à l'avance. Cependant, ce n'est pas le cas avec la boucle for-each, car la boucle itère du premier élément au dernier élément de la collection / du tableau et n'a pas besoin de spécifier le nombre d'itérations.
Un point important à garder à l'esprit est que le type spécifié dans la boucle for-each doit correspondre au type des éléments de la collection car sinon il y aura des problèmes de compatibilité.
Exemples
Pour boucle
Trouvons l'âge moyen d'un groupe de personnes utilisant la boucle for:
Code
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
int sum = 0;
System.out.print("Ages of the group are : "); for (int i = 0; i < 10 ; i++)
(
System.out.print(ages(i)+" "); sum += ages(i);
)
System.out.println("\n Average age of the group = " + (sum/10));
)
)
Production:
Boucle pour chaque
Pour trouver l'âge moyen d'un groupe de personnes utilisant une boucle pour chaque:
Code
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
int sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
(
System.out.print(x+" "); sum += x;
)
System.out.println("\n Average age of the group = " + (sum/10));
)
)
Production:
La sortie est la même en utilisant les deux boucles comme le montrent les figures ci-dessus.
Boucle Foreach utilisant Break Statement
Il est possible de réduire le nombre d'itérations de la boucle for-each à l'aide d'une instruction break. Par exemple, si nous voulons trouver la somme des 5 premiers éléments uniquement, nous pouvons utiliser l'instruction break comme suit:
Code
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
int ctr = 0, sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
(
System.out.print(x+" ");
)
for (int x : ages)
(
if (ctr == 5) break; sum += x;
ctr += 1;
)
System.out.println("\nSum of age of first 5 people of the group = " + sum);
)
)
Production:
Dans la boucle for-each mentionnée ci-dessus, x est la variable d'itération qui stocke un élément du tableau par itération qui change à l'itération suivante. Dans la première itération, x stocke le premier élément du tableau et le dernier élément du tableau dans la dernière itération. Contrairement à la boucle, où nous accédons aux éléments du tableau à l'aide de l'index, pour chaque boucle utilise une variable d'itération pour accéder aux éléments.
Il faut être prudent lors de l'utilisation de chaque boucle car la variable d'itération stocke temporairement la valeur de l'élément de tableau car il est en "lecture seule" et la modification de sa valeur ne modifie pas le tableau d'origine. Cela contredit la boucle où la modification d'un élément modifie le tableau d'origine.
Prenons un exemple où nous ajoutons 5 à chaque élément du tableau. Nous pouvons repérer la différence de sortie dans l'exemple de code suivant:
Pour boucle avec condition différente
Code
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
System.out.print("Elements of the array are : "); for (int i = 0; i < 10; i++)
(
System.out.print(ages(i)+" "); ages(i)+= 5;
)
System.out.print("\nNew elements of the array are : "); for (int i = 0; i < 10; i++)
(
System.out.print(ages(i)+" ");
)
)
)
Production:
La sortie de la boucle for montrant la mise à jour du tableau d'origine
Boucle Foreach avec condition différente
Code
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
System.out.print("Elements of the array are : "); for (int x : ages)
(
System.out.print(x+" "); x += 5;
)
System.out.print("\nNew elements of the array are : "); for (int x : ages)
(
System.out.print(x+" ");
)
)
)
Production:
La sortie de la boucle for-each ne montrant aucune mise à jour du tableau d'origine
Choses à retenir sur la boucle For-Each en Java
- La boucle For-Each en java est utilisée pour parcourir les éléments de tableau / collection dans une séquence.
- La boucle For-Each en java utilise la variable d'itération pour parcourir une collection ou un tableau d'éléments.
- La modification de la variable d'itération ne modifie pas le tableau / collection d'origine car il est en lecture seule.
- Le type dans la boucle for-each doit correspondre au type des éléments de tableau / collection d'origine.
- La boucle Foreach n'a pas besoin de spécifier le nombre d'itérations car elle itère sur tous les éléments de la collection.
- Il est possible d'arrêter la boucle for-each à l'aide d'une instruction break.
Articles recommandés
Ceci est un guide de la boucle For-Each en java. Nous discutons ici de la boucle For-Each en java avec son implémentation de code de différentes manières, c'est-à-dire avec une instruction break et avec les différentes conditions. Vous pouvez également consulter les articles suivants pour en savoir plus -
- Tableau d'impression en Java
- Boucles en programmation Java
- Boucle en Java
- Tableaux 3D en Java
- Outils de déploiement Java
- Tableaux 3D en C ++
- Pour boucle en C
- Tableaux en programmation Java