Boucles imbriquées
Fait partie de la section Fundamentals 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. Pour chaque itération de la boucle externe, la boucle interne s'exécute complètement.
Créez une boucle externe qui s'exécute 3 fois :
for (int i = 0; i < 3; i++) {
// Code de la boucle externe ici
}Ajoutez une boucle imbriquée qui s'exécute 2 fois pour chaque itération de la boucle externe :
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d,%d ", i, j);
}
printf("\n");
}La sortie sera :
0,0 0,1 0,2
1,0 1,1 1,2 Remarquez comment la boucle interne termine ses itérations avant que la boucle externe ne passe à son itération suivante.
Défi
FacileCréez un programme qui affiche un motif rectangulaire d'astérisques (*) basé sur le nombre de rows et de columns fourni par l'utilisateur.
Votre programme doit :
- Lire deux entiers de l'utilisateur : rows et columns.
- Utiliser des boucles imbriquées pour afficher un motif rectangulaire d'astérisques où la boucle externe gère rows et la boucle interne gère columns.
- Afficher un saut de ligne après chaque ligne.
Par exemple, si l'entrée est 3 rows et 4 columns, la sortie doit être :
****
****
****Aide-mémoire
Les boucles imbriquées sont des boucles placées à l'intérieur d'une autre boucle. Pour chaque itération de la boucle externe, la boucle interne s'exécute complètement.
Structure de base d'une boucle imbriquée :
for (int i = 0; i < outer_limit; i++) {
for (int j = 0; j < inner_limit; j++) {
// Code de la boucle interne
}
// Code de la boucle externe
}Exemple avec sortie :
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d,%d ", i, j);
}
printf("\n");
}Sortie :
0,0 0,1 0,2
1,0 1,1 1,2La boucle interne termine toutes ses itérations avant que la boucle externe ne passe à son itération suivante.
Essayez vous-même
#include <stdio.h>
int main() {
int rows, columns;
scanf("%d", &rows);
scanf("%d", &columns);
// Écrivez votre code ici pour imprimer 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 Fundamentals
2Variables
Types de donnéesEntiersFloat - DoubleCaractèresBooléensConstantesLes bases de printfRègles de nommage des variablesType Casting Partie 1Type Casting 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écapitulatif