Menu
Coddy logo textTech

Boucles imbriquées

Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 49 sur 109.

Les boucles imbriquées sont des boucles placées à l'intérieur d'une autre boucle. La boucle interne s'exécute complètement pour chaque itération de la boucle externe.

Créons une table de multiplication pour les nombres de 1 à 3 en utilisant des boucles imbriquées :

for i := 1; i <= 3; i++ {
    for j := 1; j <= 3; j++ {
        fmt.Printf("%d×%d=%d\t", i, j, i*j)
    }
    fmt.Println()
}

Après l'exécution de ce code, nous obtenons une table de multiplication où chaque ligne représente une valeur de la variable de la boucle externe (i) multipliée par toutes les valeurs de la variable de la boucle interne (j). Le résultat s'affichera à l'écran :

1×1=1   1×2=2   1×3=3   
2×1=2   2×2=4   2×3=6   
3×1=3   3×2=6   3×3=9   

Voyons comment cela fonctionne étape par étape :

Tout d'abord, la boucle externe définit i=1 et la boucle interne s'exécute complètement :

i=1, j=1: prints "1×1=1"
i=1, j=2: prints "1×2=2"
i=1, j=3: prints "1×3=3"

Une fois que la boucle interne est terminée, nous affichons une nouvelle ligne avec fmt.Println().

Ensuite, la boucle extérieure définit i=2 et la boucle intérieure s'exécute à nouveau :

i=2, j=1: prints "2×1=2"
i=2, j=2: prints "2×2=4"
i=2, j=3: prints "2×3=6"

Enfin, la boucle externe définit i=3 et la boucle interne s'exécute une dernière fois :

i=3, j=1: prints "3×1=3"
i=3, j=2: prints "3×2=6"
i=3, j=3: prints "3×3=9"

Ce modèle de boucles imbriquées est très utile pour travailler avec des tableaux de données ou pour créer des structures en forme de grille.

challenge icon

Défi

Débutant

Dans ce défi, vous allez vous entraîner à utiliser des boucles imbriquées pour afficher un motif simple. La boucle externe itérera sur les lignes, et la boucle interne itérera sur les colonnes pour créer une petite grille de caractères.

Complétez les boucles imbriquées pour afficher une grille d'astérisques de 3x3 (*). Chaque astérisque doit être suivi d'un espace, donc chaque ligne doit ressembler à * * * (avec un espace à la fin). Le résultat attendu est :

* * * 
* * * 
* * * 

Aide-mémoire

Les boucles imbriquées sont des boucles placées à l'intérieur d'une autre boucle. La boucle interne s'exécute complètement pour chaque itération de la boucle externe.

for i := 1; i <= 3; i++ {
    for j := 1; j <= 3; j++ {
        fmt.Printf("%d×%d=%d\t", i, j, i*j)
    }
    fmt.Println()
}

La boucle externe contrôle les lignes, tandis que la boucle interne contrôle les colonnes. Pour chaque itération de la boucle externe, la boucle interne termine toutes ses itérations avant de passer à l'itération suivante de la boucle externe.

Essayez vous-même

package main

import "fmt"

func main() {
	// Nombre de lignes et de colonnes dans notre grille
	rows := 3
	columns := 3
	
	// TODO: Créer une boucle imbriquée pour imprimer une grille d'astérisques (*)
	// La boucle externe doit parcourir les lignes
	// La boucle interne doit parcourir les colonnes
	for i := 0; i < rows; i++ {
		// Ajoutez votre boucle interne ici pour imprimer des astérisques dans chaque colonne
		
		// Ceci imprime une nouvelle ligne après chaque ligne
		fmt.Println()
	}
}
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