Boucles imbriquées
Fait partie de la section Fondamentaux du Journey C de Coddy. Leçon 43 sur 63.
Les boucles imbriquées sont des boucles placées à l’intérieur d’une autre boucle. À chaque itération de la boucle externe, la boucle interne s’exécute entièrement.
Créez une boucle externe qui s’exécute 2 fois :
for (int i = 0; i < 2; i++) {
// Code de la boucle externe ici
}Ajoute une boucle interne qui s’exécute 3 fois à chaque itération de la boucle externe :
int rows = 2;
int cols = 3;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d,%d ", i, j);
}
printf("\n");
}Le résultat sera :
0,0 0,1 0,2
1,0 1,1 1,2 Remarque que la boucle interne termine ses itérations avant que la boucle externe ne passe à l’itération suivante. Chaque boucle possède son propre compteur : j repart de 0 à chaque fois que la boucle externe s’exécute, tandis que rows et cols restent inchangés et indiquent uniquement aux boucles quand s’arrêter.
Défi
FacileCrée un programme qui affiche un motif rectangulaire composé d’astérisques (*) en fonction du nombre de lignes et de colonnes fourni par l’utilisateur.
Ton programme doit :
- Lire deux entiers saisis par l’utilisateur : le nombre de lignes et le nombre de colonnes.
- Utiliser des boucles imbriquées pour afficher un motif rectangulaire composé d’astérisques, où la boucle externe gère les lignes et la boucle interne gère les colonnes.
- Afficher un saut de ligne après chaque ligne.
Par exemple, si l’entrée indique 3 lignes et 4 colonnes, la sortie doit être :
****
****
****Utilise un nouveau compteur pour chaque boucle (par exemple i pour les lignes et j pour les astérisques sur une ligne) et compare-le à rows ou columns. Ne modifie pas rows et columns eux-mêmes : chaque ligne a de nouveau besoin de columns.
Essayez vous-même
#include <stdio.h>
int main() {
int rows, columns;
scanf("%d", &rows);
scanf("%d", &columns);
// Écrivez votre code ici pour afficher le motif
return 0;
}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
2Variables
Types de donnéesEntierVirgule flottante - DoubleCaractèresBooléensConstantesBases de printfRègles de nommage des variablesConversion de type - Partie 1Conversion de type - Partie 2Défi récapitulatif3Opérateurs
Opérateurs arithmétiquesOpérateur moduloIncrémentation/DécrémentationOpérateurs d’affectationOpérateurs relationnelsOpérateurs logiques — Partie 1Opérateurs logiques — Partie 2Opérateurs logiques — Partie 3Défi récapitulatifEntraînez-vous par vous-même : Compilateur C en ligne