Menu
Coddy logo textTech

Boucles imbriquées

Fait partie de la section Fondamentaux du Journey Ruby de Coddy — leçon 46 sur 88.

Vous pouvez placer une boucle à l'intérieur d'une autre boucle pour créer une boucle imbriquée. La boucle interne s'exécute complètement pour chaque itération de la boucle externe, ce qui rend ce modèle utile pour travailler avec des grilles, des tableaux ou des combinaisons.

for i in 1..2
  for j in 1..3
    puts "i=#{i}, j=#{j}"
  end
end

Ceci affiche six lignes. Pour chaque valeur de i, la boucle interne parcourt toutes les valeurs de j.

D'abord i vaut 1 alors que j parcourt 1, 2, 3. Ensuite i devient 2 et j parcourt à nouveau 1, 2, 3.

Un exemple pratique consiste à créer un modèle de multiplication simple :

for row in 1..3
  for col in 1..3
    print "#{row * col} "
  end
  puts ""
end

Ceci affiche une grille de produits 3x3. Le print conserve les valeurs sur la même ligne, et puts "" passe à une nouvelle ligne une fois que chaque rangée est terminée. Vous pouvez également mélanger différents types de boucles, comme une boucle times à l'intérieur d'une boucle for.

challenge icon

Défi

Facile

Lisez deux entiers à partir de l'entrée :

  1. rows - le nombre de lignes
  2. cols - le nombre de colonnes

Utilisez des boucles imbriquées pour afficher un rectangle composé d'astérisques (*) avec les dimensions données. Chaque ligne doit contenir cols astérisques séparés par des espaces, et chaque ligne doit être sur sa propre ligne.

Utilisez print pour les astérisques à l'intérieur d'une ligne et puts pour passer à la ligne suivante après chaque ligne.

Par exemple, si les entrées sont 3 et 4, la sortie devrait être :

* * * *
* * * *
* * * *

Si les entrées sont 2 et 5, la sortie devrait être :

* * * * *
* * * * *

Aide-mémoire

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

for i in 1..2
  for j in 1..3
    puts "i=#{i}, j=#{j}"
  end
end

Cela affiche six lignes au total. Pour i=1, j itère à travers 1, 2, 3. Ensuite, pour i=2, j itère à nouveau à travers 1, 2, 3.

Utilisez print pour garder la sortie sur la même ligne et puts "" pour passer à une nouvelle ligne :

for row in 1..3
  for col in 1..3
    print "#{row * col} "
  end
  puts ""
end

Vous pouvez mélanger différents types de boucles, comme utiliser une boucle times à l'intérieur d'une boucle for.

Essayez vous-même

# Lire l'entrée
rows = gets.to_i
cols = gets.to_i

# À FAIRE : Écrivez votre code ci-dessous
# Utilisez des boucles imbriquées pour imprimer un rectangle d'astérisques
# Utilisez print pour les astérisques à l'intérieur d'une ligne et puts 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