Maison >Java >javaDidacticiel >Boucle For-Each en Java
La boucle For each a été introduite en Java à partir du JDK 5. Elle vise à parcourir séquentiellement tous les éléments d'une collection ou d'un tableau. Il existe également 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 for-each, contrairement à C#, mais sa syntaxe diffère de la boucle for conventionnelle. Cette boucle for-each est également connue sous le nom de boucle for améliorée en Java.
Commencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Syntaxe :
for(type iter_var : Collection) statement_block
L'explication de chacun des termes utilisés ci-dessus est la suivante :
Il est essentiel de noter que la boucle for-each accède séquentiellement aux éléments de la collection/du 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. La boucle For nécessite que le nombre d’itérations soit spécifié au préalable. 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é.
Voici les différents exemples :
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)); } }
Sortie :
Pour trouver l'âge moyen d'un groupe de personnes à l'aide d'une boucle for-each :
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)); } }
Sortie :
Le résultat est le même en utilisant les deux boucles, comme le montrent les figures ci-dessus.
Il est possible de réduire le nombre d'itérations de la boucle for-each en utilisant 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); } }
Sortie :
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 lors de l'itération suivante. Lors de la première itération, x stocke le premier élément du tableau et le dernier élément du dernier élément de l'itération. Contrairement à la boucle for, nous accédons aux éléments du tableau en utilisant l'index, car chaque boucle utilise une variable d'itération pour accéder aux éléments.
Il faut faire attention à l'utilisation de chaque boucle car la variable d'itération stocke temporairement la valeur de l'élément du tableau car elle est en « lecture seule », et changer sa valeur ne modifie pas le tableau d'origine. Cela contredit la boucle for où la modification d'un élément modifie le tableau d'origine.
Considérons un exemple où nous ajoutons 5 à chaque élément du tableau. Nous pouvons repérer la différence dans le résultat dans l'exemple de code suivant :
La boucle for avec différentes conditions est expliquée ci-dessous :
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]+" "); } } }
Sortie :
La sortie de la boucle for montrant la mise à jour du tableau d'origine
La boucle for avec différentes conditions est expliquée ci-dessous :
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+" "); } } }
Sortie :
La sortie de la boucle for-each ne montrant aucune mise à jour du tableau d'origine
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!