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 1La 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.
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
}
}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
4Les opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloIncrémentation / DécrémentationPost-incrémentation / Post-décrémentationRaccourcis arithmétiques7Entrées/Sorties de base
Sortie de baseInterpolation de chaînesLecture d'entréeParserRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux10Méthodes (Fonctions)
Déclaration de méthodesParamètres de méthodeTypes de retourParamètres optionnelsRécapitulatif - Fonction de validationMéthodes Void13Itération sur les collections
Utilisation de la boucle ForBoucle ForeachOpérations courantes sur les tableaux5Opérateurs Partie 2
Opérateurs de comparaisonOpérateurs logiques Partie 1Opérateurs logiques Partie 2Récapitulatif - Logique simpleOpérateurs logiques Partie 33Variables - Partie 2
VarConstantesConventions de nommageRécapitulatif - Initialisation des variablesType Casting6Prise de décision
Instruction IfIf - ElseInstruction SwitchOpérateur ternaireRécapitulatif - If ElseIf - Else imbriqués9Boucles
Boucle ForBoucle WhileBoucle Do WhileBreakContinueBoucles imbriquéesBoucle infinieRécapitulatif - Entrée dynamique12Opérations sur les chaînes
Méthodes de chaînes - Partie 1Méthodes de chaînes - Partie 2Formatage de chaînesEntraînez-vous par vous-même : Compilateur C# en ligne