Menu
Coddy logo textTech

Boucles imbriquées

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

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

for row in 1...3 {
    for col in 1...2 {
        print("Row \(row), Col \(col)")
    }
}
// Sortie :
// Row 1, Col 1
// Row 1, Col 2
// Row 2, Col 1
// Row 2, Col 2
// Row 3, Col 1
// Row 3, Col 2

Pour chaque valeur de row, la boucle interne parcourt complètement toutes les valeurs de col. Ainsi, avec 3 itérations externes et 2 itérations internes, le code à l'intérieur s'exécute 6 fois au total (3 × 2).

Les boucles imbriquées sont couramment utilisées pour travailler avec des structures en forme de grille ou pour générer des motifs.

Voici un exemple qui affiche un simple rectangle d'astérisques :

for row in 1...2 {
    for col in 1...4 {
        print("*", terminator: "")
    }
    print("")  // Passer à la ligne suivante
}
// Sortie :
// ****
// ****

Le terminator: "" empêche print d'ajouter un saut de ligne, de sorte que les astérisques apparaissent sur la même ligne. Une fois la boucle interne terminée, print("") passe à la ligne suivante.

challenge icon

Défi

Facile

Lisez deux entiers à partir de l'entrée : rows et cols. Utilisez des boucles imbriquées pour imprimer une grille de nombres où chaque cellule affiche le produit de son numéro de ligne et de son numéro de colonne.

Vous recevrez les entrées suivantes :

  • Première ligne : nombre de lignes (par exemple, "3")
  • Deuxième ligne : nombre de colonnes (par exemple, "4")

Exigences :

  • Utilisez une boucle externe pour les lignes (1 à rows)
  • Utilisez une boucle interne pour les colonnes (1 à cols)
  • Imprimez le produit des numéros de ligne et de colonne actuels
  • Séparez les valeurs sur une même ligne par un espace
  • Chaque ligne doit être sur sa propre ligne

Conseil : Utilisez terminator: " " pour garder les valeurs sur la même ligne, puis utilisez print("") après la boucle interne pour passer à la ligne suivante.

Par exemple, si rows est 3 et cols est 4, la sortie devrait être :

1 2 3 4 
2 4 6 8 
3 6 9 12 

Aide-mémoire

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

for row in 1...3 {
    for col in 1...2 {
        print("Row \(row), Col \(col)")
    }
}
// Output:
// Row 1, Col 1
// Row 1, Col 2
// Row 2, Col 1
// Row 2, Col 2
// Row 3, Col 1
// Row 3, Col 2

Avec 3 itérations externes et 2 itérations internes, le code s'exécute 6 fois au total (3 × 2).

Les boucles imbriquées sont utiles pour les structures en grille et les motifs :

for row in 1...2 {
    for col in 1...4 {
        print("*", terminator: "")
    }
    print("")  // Passer à la ligne suivante
}
// Output:
// ****
// ****

Utilisez terminator: "" pour empêcher print d'ajouter un saut de ligne, gardant ainsi la sortie sur la même ligne. Utilisez print("") après la boucle interne pour passer à la ligne suivante.

Essayez vous-même

let rows = Int(readLine()!)!
let cols = Int(readLine()!)!

// À FAIRE : Écrivez votre code ci-dessous
// Utilisez des boucles imbriquées pour afficher une grille de multiplication
// Boucle externe : itérer à travers les lignes (1 à rows)
// Boucle interne : itérer à travers les colonnes (1 à cols)
// Afficher le produit de row * column
// Utilisez print(..., terminator: " ") pour garder les valeurs sur la même ligne
// Utilisez print("") après la boucle interne pour passer à la ligne suivante
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