Menu
CoddyTech

Cicli annidati

Fa parte della sezione Fondamenti del percorso Ruby di Coddy. Lezione 46 di 88.

Puoi inserire un ciclo all'interno di un altro ciclo per creare un ciclo annidato. Il ciclo interno viene eseguito completamente a ogni iterazione del ciclo esterno, rendendo questo schema utile per lavorare con griglie, tabelle o combinazioni.

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

Questo stampa sei righe. Per ogni valore di i, il ciclo interno scorre tutti i valori di j.

Prima i è 1 mentre j procede con 1, 2, 3. Poi i diventa 2 e j procede di nuovo con 1, 2, 3. rows e cols non cambiano mai: indicano solo ai cicli quando fermarsi.

Un esempio pratico è creare un semplice schema di moltiplicazione:

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

Questo stampa una griglia di prodotti 3x3. print mantiene i valori sulla stessa riga, mentre puts "" passa a una nuova riga dopo il completamento di ogni riga. Puoi anche combinare diversi tipi di ciclo, ad esempio un ciclo times all'interno di un ciclo for.

challenge icon

Sfida

Facile

Leggi due numeri interi dall'input:

  1. rows - il numero di righe
  2. cols - il numero di colonne

Usa cicli annidati per stampare un rettangolo composto da asterischi (*) con le dimensioni indicate. Ogni riga deve contenere cols asterischi separati da spazi e deve essere su una riga a sé.

Usa print per gli asterischi all'interno di una riga e puts per passare alla riga successiva dopo ogni riga.

Ad esempio, se gli input sono 3 e 4, l'output dovrebbe essere:

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

Se gli input sono 2 e 5, l'output dovrebbe essere:

* * * * *
* * * * *

Non ci sono spazi dopo l'ultimo * di una riga.

Usa un nuovo contatore per ogni ciclo (ad esempio row per le righe e col per gli asterischi di una riga) e confrontalo con rows o cols. Non modificare rows e cols: ogni riga ha bisogno di cols di nuovo.

Provalo tu

# Leggi l'input
rows = gets.to_i
cols = gets.to_i

# TODO: Scrivi il tuo codice qui sotto
# Usa cicli annidati per stampare un rettangolo di asterischi
# Usa print per gli asterischi all'interno di una riga e puts per passare alla riga successiva
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Ruby online