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.
for i in 1..2
for j in 1..3
puts "i=#{i}, j=#{j}"
end
endQuesto produce sei righe. Per ogni valore di i, il ciclo interno scorre tutti i valori di j.
Prima i è 1 mentre j assume i valori 1, 2, 3. Poi i diventa 2 e j assume di nuovo i valori 1, 2, 3.
Un esempio pratico consiste nel creare un semplice schema di moltiplicazione:
for row in 1..3
for col in 1..3
print "#{row * col} "
end
puts ""
endQuesto stampa una griglia 3x3 di prodotti. print mantiene i valori sulla stessa riga e puts "" passa a una nuova riga al termine di ogni riga. Puoi anche combinare diversi tipi di cicli, ad esempio un ciclo times all'interno di un ciclo for.
Sfida
FacileLeggi due numeri interi dall'input:
rows- il numero di righecols- il numero di colonne
Usa cicli annidati per stampare un rettangolo di asterischi (*) con le dimensioni indicate. Ogni riga deve contenere cols asterischi separati da spazi e deve occupare una riga a sé.
Usa print per gli asterischi all'interno di una riga e puts per passare alla riga successiva dopo ogni riga.
Per esempio, se gli input sono 3 e 4, l'output dovrebbe essere:
* * * *
* * * *
* * * *Se gli input sono 2 e 5, l'output dovrebbe essere:
* * * * *
* * * * *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 successivaQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica sempliceOperatori logici Parte 3Operatori logici Parte 47Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire input dall'utente10FizzBuzz con un colpo di scena
Panoramica del giocoIl metodo FizzBuzz2Variabili e tipi di dato
Numeri e variabiliTipo di dato stringaTipo di dato booleanoTipo di dato SymbolVerifica dei tipi di datoConvenzioni di denominazioneRiepilogo - Creazione di variabili5Strutture decisionali
Istruzione ifIf-ElseRipasso - Calcolatrice sempliceIf-Else annidatoIstruzione unless8Cicli
Ciclo for con intervalliCiclo whilebreaknextRiepilogo - FattorialeCiclo timesCiclo untilCicli annidatiRiepilogo - Input dinamico3Operatori, parte 1
Operatori aritmeticiOperatore moduloScorciatoie aritmeticheRipasso: matematica sempliceOperatori di confronto6Input/Output di base
Output con putsOutput con print e pOutput con variabiliInput con getsMetodo chompConversione di tipoRipasso - Calcolatore dell'etàRipasso - Vero o falsoEsercitati da solo: Compilatore Ruby online