Skip to main content

Someone wanted to learn this too, so Grasp built them a personal learning path.

You can keep exploring this one or create your own

"Les boucles en C#"

Bonjour ! Prêt pour une nouvelle leçon ?

Dans notre dernière session, nous avons vu comment utiliser les instructions if, else if, else et switch pour que notre programme prenne des décisions. C'est ce qui nous permet d'exécuter un bloc de code une seule fois si une condition est remplie.

Aujourd'hui, nous allons découvrir un concept tout aussi fondamental : les boucles. Alors que les conditions permettent de choisir un chemin, les boucles permettent de répéter un chemin plusieurs fois. C'est grâce à elles que nous pourrons, par exemple, afficher tous les produits d'un catalogue, traiter toutes les lignes d'un fichier ou, plus simplement, répéter une action un nombre de fois défini.

L'objectif de cette leçon est d'écrire des boucles pour itérer sur des collections (for, while, foreach). Nous allons explorer les trois types de boucles principaux en C#, comprendre leurs différences et savoir quand utiliser chacune d'elles.

1. La boucle while : Répéter tant qu'une condition est vraie

La boucle while (qui signifie "tant que") est la plus fondamentale. Elle est très proche d'une instruction if qui se répéterait tant que sa condition reste vraie.

La structure est simple :

while (condition)
{
    // Ce code sera exécuté en boucle...
    // ...tant que la 'condition' est évaluée à 'true'.
}

L'élément crucial est que quelque chose à l'intérieur de la boucle doit, à un moment donné, rendre la condition fausse. Sinon, vous créez une boucle infinie, et votre programme se bloquera !

Pour bien comprendre ce mécanisme, y compris comment l'éviter, regardons un extrait vidéo.

CSharp #7 - boucles

Cette vidéo de la chaîne EvoluNoob explique en détail le fonctionnement de la boucle while, l'importance d'un compteur, et le piège de la boucle infinie.

Regardez l'extrait de 04:43 à 11:25. Concentrez-vous sur les points suivants : La syntaxe de base de la boucle while. Le rôle de la variable 'compteur' (souvent nommée i). Pourquoi l'incrémentation (i++) est essentielle pour éviter une boucle infinie. La différence entre commencer à 0 avec < et commencer à 1 avec <=.

Exemple pratique : Un simple compteur

Voici un exemple classique de boucle while qui compte de 1 à 5 :

int i = 1; // 1. Initialisation : On commence à 1.

while (i <= 5) // 2. Condition : On continue tant que i est inférieur ou égal à 5.
{
    Console.WriteLine(i); // Affiche la valeur actuelle de i.
    i++; // 3. Itération : On incrémente i. Sans cette ligne, la boucle serait infinie !
}
Console.WriteLine("La boucle est terminée.");

Ce code affichera :

1
2
3
4
5
La boucle est terminée.

Quand l'utiliser ? La boucle while est idéale lorsque vous ne savez pas à l'avance combien de fois vous devez répéter une action. Par exemple, attendre que l'utilisateur entre une donnée valide.

2. La boucle for : Répéter un nombre de fois connu

La boucle for est une version plus structurée et compacte de la boucle while. Elle est parfaite lorsque vous savez exactement combien de fois vous voulez itérer. Elle regroupe l'initialisation, la condition et l'itération en une seule ligne, ce qui la rend très lisible.

Sa syntaxe est la suivante : for (initialisation; condition; itération)

Apprendre le C# - 05 - Les boucles for, foreach et while

Cette vidéo de Pentiminax offre une démonstration rapide et claire de la boucle for utilisée pour parcourir une liste, un cas d'usage très courant.

Regardez l'extrait de 00:30 à 02:45. Observez comment la boucle for est construite et comment l'indice i est utilisé pour accéder aux éléments d'une collection.

Reprenons notre compteur de 1 à 5, cette fois avec une boucle for :

//    (initialisation; condition; itération)
for (int i = 1;      i <= 5;    i++)
{
    Console.WriteLine(i);
}
Console.WriteLine("La boucle est terminée.");

Le résultat est identique, mais le code est plus concis. Les trois parties de la gestion de la boucle sont réunies au même endroit, ce qui limite les risques d'erreur comme l'oubli de l'incrémentation.

Quand l'utiliser ? Utilisez for dès que vous avez besoin de faire quelque chose un nombre précis de fois ou d'itérer sur une collection en utilisant un index numérique.

3. La boucle foreach : Parcourir une collection

La boucle foreach est la manière la plus simple et la plus sûre de parcourir tous les éléments d'une collection (comme un tableau ou une liste, que nous verrons en détail dans la prochaine leçon).

Sa syntaxe est très expressive et se lit presque comme une phrase en français : "Pour chaque élément dans la collection..."

foreach (type element in collection)

La boucle foreach

Pour bien visualiser la différence, lisez cette section du tutoriel de MakeYourGame. L'exemple avec les mousquetaires est très clair pour comprendre l'élégance de la boucle foreach.

Lisez la section intitulée La boucle foreach. Concentrez-vous sur la syntaxe et comment la variable mousquetaire prend successivement la valeur de chaque élément du tableau tableauMousquetaires.

Exemple pratique : Afficher une liste de noms

Imaginons que nous ayons un tableau de chaînes de caractères. Voici comment l'afficher avec foreach :

string[] fruits = { "Pomme", "Banane", "Orange" };

foreach (string fruit in fruits)
{
    Console.WriteLine($"J'aime le fruit : {fruit}");
}

Ce code affichera :

J'aime le fruit : Pomme
J'aime le fruit : Banane
J'aime le fruit : Orange

Avec foreach, vous n'avez pas à gérer d'index (i) ou de condition d'arrêt. La boucle s'arrête automatiquement après le dernier élément. C'est plus simple et moins sujet aux erreurs.

Flowchart of C# foreach Loop Execution
Ce diagramme illustre le fonctionnement d'une boucle `foreach`. Elle vérifie s'il reste des éléments dans la collection. Si oui, elle prend l'élément suivant, exécute le code de la boucle, puis recommence. Sinon, elle se termine.

Quand l'utiliser ? Utilisez foreach chaque fois que vous voulez simplement effectuer une action sur chaque élément d'une collection, du premier au dernier, et que vous n'avez pas besoin de connaître l'index de l'élément.

4. Résumé et exercice

C# Loop Constructs: For, Foreach, and While
Un résumé visuel de la syntaxe de base pour les boucles `for`, `foreach` et `while` en C#.
Boucle Quand l'utiliser
while Le nombre d'itérations est inconnu et dépend d'une condition qui change.
for Le nombre d'itérations est connu à l'avance (ex: 10 fois, ou la taille d'un tableau).
foreach Vous voulez parcourir chaque élément d'une collection, sans vous soucier de l'index.

Exercice Pratique : Table de multiplication

Maintenant, à vous de jouer ! Votre objectif est de créer un programme qui demande un nombre à l'utilisateur, puis affiche sa table de multiplication de 1 à 10.

Par exemple, si l'utilisateur entre 7, le programme doit afficher :

7 x 1 = 7
7 x 2 = 14
...
7 x 10 = 70

Instructions :

  1. Créez un nouveau projet console.
  2. Demandez à l'utilisateur d'entrer un nombre et lisez sa réponse. N'oubliez pas de la convertir en entier avec int.Parse().
  3. Utilisez une boucle for pour itérer de 1 à 10.
  4. À l'intérieur de la boucle, calculez le résultat et affichez-le au format nombre x i = resultat.

Cet exercice est un excellent moyen de mettre en pratique la boucle for. Prenez le temps d'essayer de le résoudre par vous-même. Vous trouverez des exercices similaires dans la ressource LINK (section 2.4.3, Exercice 6).

Conclusion

Félicitations ! Vous avez ajouté les boucles à votre boîte à outils de développeur. La combinaison des conditions (pour choisir) et des boucles (pour répéter) constitue l'essentiel de la logique de programmation.

Les points clés à retenir :

  • La boucle while se base sur une condition et est flexible.
  • La boucle for est parfaite pour un nombre d'itérations connu, avec un compteur.
  • La boucle foreach est la plus simple et la plus sûre pour parcourir tous les éléments d'une collection.

Dans la prochaine leçon, nous allons nous plonger dans ce que nous avons commencé à utiliser aujourd'hui : les collections. Nous allons créer et manipuler des tableaux et des listes (List<T>). Maintenant que vous savez comment itérer dessus, vous serez prêt à stocker, gérer et traiter des ensembles de données, ce qui est une compétence indispensable pour construire votre future application e-commerce.

Can't find a good explanation? Sign up and we'll make it for you

Sign up