Guide des boucles Java

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:

  1. La poignée d'un élément sur lequel nous itérons actuellement

  2. 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 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.