C#.NETDébutantBouclesTutoriel

Boucles en C# : for, while, do while et foreach

Apprenez à choisir et utiliser les boucles for, while, do while et foreach en C#, ainsi que break et continue, sans créer de boucle infinie.

Yva Hajatiana
15 octobre 2017
3 min de lecture
Partager :X / TwitterLinkedIn
Boucles for while do while et foreach en C#

Une boucle répète une instruction. La bonne structure dépend de ce que vous connaissez : un nombre d’itérations, une condition d’arrêt ou simplement une collection à parcourir.

for : compter les itérations

for (int i = 10; i >= 0; i--)
{
    Console.WriteLine(i == 0 ? "Décollage !" : i);
}

Une boucle for réunit l’initialisation, la condition et l’évolution du compteur. Elle convient lorsque le nombre d’itérations est connu ou lorsque l’index est utile.

while : tester avant d’exécuter

int tentatives = 0;
bool trouve = false;

while (!trouve && tentatives < 5)
{
    Console.Write("Nombre entre 1 et 10 : ");
    trouve = int.TryParse(Console.ReadLine(), out int valeur)
        && valeur == 7;
    tentatives++;
}

La condition est vérifiée avant le premier passage. Le corps peut donc ne jamais s’exécuter.

do while : exécuter au moins une fois

bool continuer;

do
{
    Console.WriteLine("Traitement en cours…");
    Console.Write("Continuer ? (O/N) : ");
    continuer = Console.ReadKey().Key == ConsoleKey.O;
    Console.WriteLine();
} while (continuer);

Le test a lieu après le corps. Cette boucle est adaptée aux menus et aux saisies qui doivent être proposées au moins une fois.

foreach : parcourir une collection

string[] fruits = ["Pomme", "Banane", "Poire"];

foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}

foreach évite de manipuler un index et exprime directement l’intention : traiter chaque élément.

Contrôler la boucle avec break et continue

for (int i = 0; i < 10; i++)
{
    if (i == 3) continue;
    if (i == 7) break;
    Console.WriteLine(i);
}

continue passe à l’itération suivante. break quitte immédiatement la boucle la plus proche.

Imbriquer des boucles

Une table de multiplication utilise deux dimensions :

for (int i = 1; i <= 5; i++)
{
    for (int j = 1; j <= 10; j++)
    {
        Console.WriteLine($"{i} × {j} = {i * j}");
    }
}

Le corps intérieur s’exécute entièrement pour chaque valeur de i. Deux boucles de tailles n et m réalisent donc jusqu’à n × m passages.

Quelle boucle choisir ?

SituationBoucle
nombre d’itérations connu ou index nécessairefor
répétition tant qu’une condition reste vraiewhile
au moins une exécution obligatoiredo while
parcours simple d’une collectionforeach

Erreurs fréquentes

  • oublier de modifier la condition d’un while et créer une boucle infinie ;
  • écrire i <= collection.Length, ce qui dépasse le dernier index ;
  • modifier une collection pendant son parcours avec foreach ;
  • imbriquer des boucles coûteuses sans considérer le nombre total d’itérations.

Épisode précédent : switch et pattern matching. Épisode suivant : tableaux, listes et dictionnaires.

Mots-clés :C#.NETDébutantBouclesTutoriel
Y

Yva Hajatiana

Articles techniques sur l'ingénierie logicielle, .NET, le cloud et l'intelligence artificielle appliquée aux applications.