Aller au contenu

La boucle Foreach

"Le foreach, c’est comme dire à l’ordinateur : ‘Parcours-moi tout ça, je te fais confiance.’"

Un développeur détendu

Qu’est-ce qu’une boucle foreach ?

La boucle foreach est utilisée pour parcourir tous les éléments d’une collection (tableau, liste, etc.) sans se soucier de l’index.

C’est la boucle idéale quand : - On veut traiter chaque élément d’un tableau ou d’une collection, - On n’a pas besoin de connaître la position (indice) de l’élément.

“Pour chaque élément dans cette collection, fais quelque chose avec lui.”


Structure générale

foreach (type element in collection)
{
    instructions;
}
  • type : le type des éléments contenus dans la collection (ex. int, string, etc.)

  • element : une variable temporaire représentant chaque élément

  • collection : un tableau, une liste, ou toute structure "itérable"

Exemple simple : affichage d’un tableau

    string[] prenoms = { "Alice", "Bob", "Charlie" };

    foreach (string prenom in prenoms)
    {
        Console.WriteLine("Bonjour " + prenom);
    }

Résultat

    Bonjour Alice
    Bonjour Bob
    Bonjour Charlie

Comparaison avec la boucle for

for foreach
Utilise un compteur Ne nécessite aucun index
Permet un contrôle précis Parcours tout automatiquement
Requiert de connaître la taille de la collection Gère ça en interne
Possibilité de modifier des éléments via l’index Lecture seule dans la plupart des cas

⚠️Erreurs fréquentes

  • ❌ Modifier la collection pendant le parcours → risque d'erreur d'exécution

  • ❌ Essayer de changer la valeur de element → n’a aucun effet sur la collection

foreach (int val in tableau)
{
    // ❌ Cela ne modifie pas les valeurs dans le tableau
    val = val * 2; 
}

✅ Si on veut modifier, il faut passer par une boucle for.

Astuce : avec des types complexes

List<Etudiant> classe = new List<Etudiant>();


foreach (Etudiant e in classe)
{
    Console.WriteLine(e.Nom + " - " + e.Note);
}

🔹 On peut parcourir une liste d’objets comme n’importe quelle autre collection.

Quiz

Testez vos connaissances ! 📝 Clique sur chaque question pour voir la réponse ✅

1️⃣ À quoi sert la boucle foreach ?


A. À exécuter une instruction un nombre précis de fois
B. À parcourir tous les éléments d’une collection sans utiliser d’index
C. À créer une nouvelle collection
D. À répéter une opération en fonction d’une condition booléenne

✅ Réponse : B. La boucle foreach permet de parcourir facilement tous les éléments d'une collection (tableau, liste...) sans gérer d'indice..

2️⃣ CQuel est le résultat affiché par ce code ?

        string[] animaux = { "Chat", "Chien", "Lapin" }; 
        foreach (string a in animaux) 
        { 
            Console.Write(a + " "); 
        }

A. Chien Chat Lapin
B. Chat Chien Lapin
C. a a a
D. Erreur de compilation
✅ Réponse : B. Le code affiche chaque élément du tableau dans l'ordre : Chat Chien Lapin.

3️⃣ Quelle affirmation est vraie concernant le foreach ?

A. On peut modifier les éléments du tableau en les multipliant directement dans la boucle
B. foreach permet de parcourir uniquement les tableaux, pas les listes
C. foreach empêche de modifier la structure d’une collection pendant le parcours
D. Il est obligatoire d’utiliser un compteur i dans un foreach
✅ Réponse : C. Il est déconseillé (voire interdit) de modifier la collection (ajouter ou supprimer des éléments) pendant un foreach, car cela déclenche une exception.

4️⃣ Laquelle des syntaxes suivantes est correcte ? ?


A. foreach string s in noms
B. foreach (noms in string s)
C. foreach (string s in noms)
D. for (string s : noms)

✅ Réponse : C. La syntaxe correcte en C# est foreach (type variable in collection)

5️⃣ Pourquoi ce code ne modifie-t-il pas les valeurs du tableau ?

    int[] nombres = { 1, 2, 3 }; 
    foreach (int n in nombres) 
    { 
        n = n * 2; 
    }

A. Parce que la boucle n’est jamais exécutée
B. Parce que n est une copie de chaque valeur du tableau
C. Parce que le foreach ne supporte pas les entiers
D. Parce que la syntaxe est incorrecte
✅ Réponse : B. n est une copie de chaque valeur du tableau. Modifier n ne change pas les valeurs originales dans le tableau.


Navigation

Introduction for while do...while foreach Travail pratique


Pour aller plus loin

  • W3Schools – C# foreach Loop
    Une introduction simple et interactive à la boucle foreach, idéale pour les débutants. Elle inclut des exemples testables directement dans le navigateur.

  • Programiz – C# foreach Loop
    Explication complète et claire de la boucle foreach, avec illustrations pratiques, exemples de code et tableaux comparatifs pour débutants.

  • Dot Net Tutorials – Foreach Loop in C#
    Un tutoriel structuré qui montre l’intérêt de foreach dans différents contextes (listes, dictionnaires, tableaux), avec des cas d’erreurs fréquentes à éviter.