Menu
CoddyTech

Boucles imbriquées

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

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

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

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

D’abord, i vaut 1 tandis que j prend les valeurs 1, 2, 3. Puis i devient 2 et j prend à nouveau les valeurs 1, 2, 3. rows et cols ne changent jamais : ils indiquent seulement aux boucles quand s’arrêter.

Un exemple pratique consiste à créer un motif de multiplication simple :

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

Cela affiche une grille de produits de 3x3. print garde les valeurs sur la même ligne, et puts "" passe à la ligne après chaque ligne terminée. Tu peux aussi combiner différents types de boucles, par exemple une boucle times à l’intérieur d’une boucle for.

challenge icon

Défi

Facile

Lis deux entiers depuis l’entrée :

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

Utilise des boucles imbriquées pour afficher un rectangle composé d’astérisques (*) aux 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.

Utilise print pour les astérisques 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 :

* * * * *
* * * * *

Il n’y a pas d’espace après le dernier * d’une ligne.

Utilise un nouveau compteur pour chaque boucle (par exemple row pour les lignes et col pour les astérisques d’une ligne) et compare-le à rows ou cols. Ne modifie pas rows et cols eux-mêmes : chaque ligne a de nouveau besoin de cols.

Essayez vous-même

# Lire les données d’entrée
rows = gets.to_i
cols = gets.to_i

# TODO: Écrivez votre code ci-dessous
# Utilisez des boucles imbriquées pour afficher un rectangle d’astérisques
# Utilisez print pour afficher les astérisques 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

Entraînez-vous par vous-même : Compilateur Ruby en ligne