Menu
CoddyTech

Boucles imbriquées

Fait partie de la section Fondamentaux du Journey C# de Coddy. Leçon 46 sur 69.

Une boucle imbriquée est simplement une boucle à l’intérieur d’une autre boucle. La boucle interne effectuera toutes ses itérations pour chaque itération de la boucle externe.

Une bonne analogie est celle d’une horloge : pour chaque heure (boucle externe), l’aiguille des minutes (boucle interne) doit effectuer son cycle complet de 60 minutes.

Exemple de boucle imbriquée :

int rows = 2;
int cols = 2;
for (int x = 0; x < rows; x++) {
	for (int y = 0; y < cols; y++) {
		Console.WriteLine(x + " " + y);
	}
}

// Cela affichera :
// 0 0
// 0 1
// 1 0
// 1 1

La boucle externe (x) s’exécute rows fois et, pour chacune de ces fois, la boucle interne (y) s’exécute cols fois, ce qui signifie que le corps de la boucle interne s’exécute au total 2 × 2 = 4 fois. Chaque boucle a son propre compteur : y recommence à 0 chaque fois que la boucle externe s’exécute, tandis que rows et cols restent identiques et indiquent seulement aux boucles quand s’arrêter.

Tu peux aussi avoir besoin de Console.Write() lorsque tu travailles avec des boucles imbriquées. Contrairement à Console.WriteLine(), qui affiche du texte et passe à la ligne suivante, Console.Write() affiche du texte sans ajouter de saut de ligne à la fin. Cela te permet de construire la sortie sur une même ligne :

for (int y = 0; y < 4; y++) {
	Console.Write("* ");
}
Console.WriteLine();

// Cela affichera :
// * * * * 

Ici, Console.Write() continue d’imprimer sur la même ligne, et Console.WriteLine() à la fin passe à la ligne suivante.

challenge icon

Défi

Débutant

Écrivez un programme qui affiche un rectangle d’astérisques (*) avec une largeur et une hauteur données.

Entrée : deux entiers : width et height

Par exemple :

Si width = 5 et height = 3, la sortie doit être :

*****
*****
*****

Si width = 4 et height = 6, la sortie doit être :

****
****
****
****
****
****

Utilisez un nouveau compteur pour chaque boucle (par exemple i pour les lignes et j pour les astérisques d’une ligne) et comparez-le à height ou à width. Ne modifiez pas height et width eux-mêmes : chaque ligne a besoin de width à nouveau.

Essayez vous-même

using System;

public class Program {
    public static void Main(string[] args) {
        int width = int.Parse(Console.ReadLine());
        int height = int.Parse(Console.ReadLine());
        // Écrivez votre code ci-dessous

    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Compilateur C# en ligne