Guide des boucles Java
1. Vue d'ensemble
Dans cet article, nous allons examiner un aspect fondamental du langage Java - exécuter une instruction ou un groupe d'instructions à plusieurs reprises - à l'aide de boucles.
2. Introduction aux boucles
Dans les langages de programmation,looping is a feature which facilitates the execution of a set of instructions until the controlling Boolean-expression evaluates to false.
Java fournit différents types de boucles pour répondre à tous les besoins de programmation. Chaque boucle a son propre but et un cas d'utilisation approprié à servir.
Voici les types de boucles que nous pouvons trouver en Java:
-
Bouclefor simple
-
Bouclefor-each améliorée
-
BoucleWhile
-
BoucleDo-While
3. Boucle simplefor
Une bouclefor est une structure de contrôle qui nous permet de répéter certaines opérations en incrémentant et en évaluant un compteur de boucle.
Avant la première itération, le compteur de boucles est initialisé, puis l'évaluation de la condition est effectuée, suivie de la définition de l'étape (généralement une simple incrémentation).
La syntaxe de la bouclefor est:
for (initialization; Boolean-expression; step)
statement;
Voyons cela dans un exemple simple:
for (int i = 0; i < 5; i++) {
System.out.println("Simple for loop: i = " + i);
}
Lesinitialization,Boolean-expression, etstep utilisés dans l'instructionfor sontoptional. Voici un exemple de boucle forinfinite:
for ( ; ; ) {
// Infinite for loop
}
3.1. Bouclesfor étiquetées
Nous pouvons également avoir des bouclesfor étiquetées. C'est utile si nous avons des boucles for imbriquées afin de pouvoirbreak /continue à partir d'une bouclefor spécifique:
aa: for (int i = 1; i <= 3; i++) {
if (i == 1)
continue;
bb: for (int j = 1; j <= 3; j++) {
if (i == 2 && j == 2) {
break aa;
}
System.out.println(i + " " + j);
}
}
4. Bouclefor améliorée
Depuis Java 5, nous avons un deuxième type de bouclefor appeléeenhanced forwhich qui facilite l'itération sur tous les éléments d'un tableau ou d'une collection.
La syntaxe de la boucleenhanced for est:
for(Type item : items)
statement;
Comme cette boucle est simplifiée par rapport à la norme pour la boucle, nous n'avons à déclarer que deux choses lors de l'initialisation d'une boucle:
-
La poignée d'un élément sur lequel nous itérons actuellement
-
Le tableau / la collection source que nous itérons
Par conséquent, nous pouvons dire que:For each element in items, assign the element to the item variable and run the body of the loop.
Jetons un coup d'œil à l'exemple simple:
int[] intArr = { 0,1,2,3,4 };
for (int num : intArr) {
System.out.println("Enhanced for-each loop: i = " + num);
}
Nous pouvons l’utiliser pour parcourir diverses structures de données Java:
Étant donné un objetList<String> list - nous pouvons l'itérer:
for (String item : list) {
System.out.println(item);
}
Nous pouvons de même itérer sur unSet<String> set:
for (String item : set) {
System.out.println(item);
}
Et, étant donné unMap<String,Integer> map, nous pouvons également le parcourir:
for (Entry entry : map.entrySet()) {
System.out.println(
"Key: " + entry.getKey() +
" - " +
"Value: " + entry.getValue());
}
4.1. Iterable.forEach()
Depuis Java 8, nous pouvons utiliser des boucles pour chaque boucle d’une manière légèrement différente. Nous avons maintenant une méthodeforEach() dédiée dans l'interfaceIterable qui accepte une expression lambda représentant une action que nous voulons effectuer.
En interne, il délègue simplement le travail à la boucle standard:
default void forEach(Consumer super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
Jetons un œil à l'exemple:
List names = new ArrayList<>();
names.add("Larry");
names.add("Steve");
names.add("James");
names.add("Conan");
names.add("Ellen");
names.forEach(name -> System.out.println(name));
5. BoucleWhile
La bouclewhile est l'instruction de boucle la plus fondamentale de Java. Il répète une instruction ou un bloc d'instructionswhile son contrôleBoolean-expression est vrai.
La syntaxe de la bouclewhile est:
while (Boolean-expression)
statement;
The loop’s Boolean-expression is evaluated before the first iteration of the loop - ce qui signifie que si la condition est évaluée à false, la boucle risque de ne pas s'exécuter une seule fois.
Prenons un exemple simple:
int i = 0;
while (i < 5) {
System.out.println("While loop: i = " + i);
}
6. BoucleDo-While
La boucle do-while fonctionne exactement comme la boucle while sauf pour le fait quethe first condition evaluation happens after the first iteration of the loop:
do {
statement;
} while (Boolean-expression);
Prenons un exemple simple:
int i = 0;
do {
System.out.println("Do-While loop: i = " + i++);
} while (i < 5);
7. Conclusion
Dans ce rapide tutoriel, nous avons présenté les différents types de boucles disponibles dans le langage de programmation Java.
Nous avons également vu comment chaque boucle répond à un objectif particulier en fonction d'un cas d'utilisation approprié. Nous avons discuté des circonstances qui conviennent à une implémentation de boucle donnée.
Comme toujours, des exemples peuvent être trouvésover on GitHub.