Boucle for each | Java

image_pdfimage_print

For-each est une autre technique pour parcourir un tableau comme la boucle for, la boucle while, la boucle do-while introduite dans Java5.

  • Il commence par le mot-clé for comme une boucle for normale.
  • Au lieu de déclarer et d’initialiser une variable de compteur de boucle, vous déclarez une variable qui est du même type que le type de base du tableau, suivie de deux points, qui est ensuite suivie du nom du tableau.
  • Dans le corps de la boucle, vous pouvez utiliser la variable de boucle que vous avez créée plutôt que d’utiliser un élément de tableau indexé.
  • Il est couramment utilisé pour parcourir un tableau ou une Collections (par exemple, ArrayList, LinkedList, etc…)

 
 

Différence entre la boucle for et la boucle for-each:

Pour savoir pourquoi la boucle for-each est préférée à la boucle for lorsque vous travaillez avec des tableaux, regardons l’exemple suivant.

Ici, l’exemple montre comment nous pouvons parcourir les éléments d’un tableau à l’aide d’une boucle for normale.

public class Main {
    public static void main(String[] args) {
      
        char[] tab = {'A', 'B', 'C', 'D', 'E', 'F'};

        for (int i = 0; i < tab.length; ++i) {
            System.out.println(tab[i]);
        }
    }
}

Sortie:

A
B
C
D
E
F

Nous allons maintenant effectuer la même tâche en utilisant la boucle for-each.

public class Main {
    public static void main(String[] args) {
      
        char[] tab = {'A', 'B', 'C', 'D', 'E', 'F'};

        for (char c: tab) {
            System.out.println(c);
        }
    }
}

Sortie:

A
B
C
D
E
F

Ici, nous pouvons voir que la sortie des deux programmes est la même.

Lorsque nous analysons soigneusement le programme, nous pouvons remarquer que la boucle for-each est plus facile à écrire et rend notre code plus lisible. C’est la raison pour laquelle il est appelé la boucle for « améliorée ».

Par conséquent, il est recommandé d’utiliser la boucle for « améliorée ».
 
 

La boucle for each

Regardons d’abord la syntaxe de la boucle for each:

for(type var : array) {
    ...
}

Ici,

  • array : Le tableau que vous souhaitez parcourir.
  • var : un seul élément du tableau.

 

Comment fonctionne la boucle for each

Voici comment fonctionne la boucle for-each en Java. Pour chaque itération, la boucle for-each

  • parcourt chaque élément dans le tableau donné (array),
  • stocke chaque élément dans une variable (var)
  • et exécute le corps de la boucle.

Regardons un exemple.
 

Exemple:
public class Main {
    public static void main(String[] args) {
      
        // déclaration d'un tableau
        int tab[] = { 100, 105, 110, 115, 120 };
        
        //parcourir le tableau avec la boucle for-each
        for(int i: tab){
            System.out.println(i);
        }
    }
}

Sortie:

100
105
110
115
120

 
 

Limitations de la boucle for-each

1- Les boucles For-each ne conviennent pas lorsque vous souhaitez modifier un tableau:

for (int n : tab) 
{
    // ne change que n, pas l'élément du tableau
    n = n + 10; 
}

2- Les boucles For-each ne gardent pas la trace de l’index. Nous ne pouvons donc pas obtenir l’index de tableau à l’aide de la boucle For-Each:

for (int n : tab) 
{
    if (n == val) 
    {
        return ???;   // on ne sait pas l'index de n
    }
}

3- La boucle For-each, parcourt le tableau dans un seul sens:

// ne peut pas être converti en une boucle for-each
for (int i = tab.length-1; i > 0; i--) 
{
      System.out.println(tab[i]);
}

4- La boucle For-each ne peut pas traiter des condition if avec un tableau indexé:

// ne peut pas être converti en une boucle for-each
for (int i = 0; i < tab1.length; i++) 
{
    if (tab1[i] == tab2[i]) 
    { 
         ...
    } 
}
Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *