Verschachtelte Schleifen
Teil des Abschnitts Grundlagen der Ruby-Journey von Coddy — Lektion 46 von 88.
Sie können eine Schleife in eine andere Schleife einfügen, um eine verschachtelte Schleife zu erstellen. Die innere Schleife wird für jede Iteration der äußeren Schleife vollständig durchlaufen, was dieses Muster nützlich für die Arbeit mit Gittern, Tabellen oder Kombinationen macht.
for i in 1..2
for j in 1..3
puts "i=#{i}, j=#{j}"
end
endDies gibt sechs Zeilen aus. Für jeden Wert von i durchläuft die innere Schleife alle Werte von j.
Zuerst ist i gleich 1, während j die Werte 1, 2, 3 durchläuft. Dann wird i zu 2 und j durchläuft erneut 1, 2, 3.
Ein praktisches Beispiel ist das Erstellen eines einfachen Multiplikationsmusters:
for row in 1..3
for col in 1..3
print "#{row * col} "
end
puts ""
endDies gibt ein 3x3-Gitter von Produkten aus. Das print behält Werte in derselben Zeile, und puts "" wechselt in eine neue Zeile, nachdem jede Reihe abgeschlossen ist. Sie können auch verschiedene Schleifentypen mischen, wie eine times-Schleife innerhalb einer for-Schleife.
Aufgabe
EinfachLies zwei Ganzzahlen aus der Eingabe:
rows- die Anzahl der Zeilencols- die Anzahl der Spalten
Verwende verschachtelte Schleifen, um ein Rechteck aus Sternchen (*) mit den angegebenen Dimensionen auszugeben. Jede Zeile sollte cols Sternchen enthalten, die durch Leerzeichen getrennt sind, und jede Zeile sollte in einer eigenen Zeile stehen.
Verwende print für Sternchen innerhalb einer Zeile und puts, um nach jeder Zeile in die nächste Zeile zu springen.
Wenn die Eingaben zum Beispiel 3 und 4 sind, sollte die Ausgabe wie folgt aussehen:
* * * *
* * * *
* * * *Wenn die Eingaben 2 und 5 sind, sollte die Ausgabe wie folgt aussehen:
* * * * *
* * * * *Spickzettel
Verschachtelte Schleifen ermöglichen es Ihnen, eine Schleife innerhalb einer anderen zu platzieren. Die innere Schleife wird für jede Iteration der äußeren Schleife vollständig durchlaufen.
for i in 1..2
for j in 1..3
puts "i=#{i}, j=#{j}"
end
endDies gibt insgesamt sechs Zeilen aus. Für i=1 durchläuft j die Werte 1, 2, 3. Dann durchläuft j für i=2 erneut die Werte 1, 2, 3.
Verwenden Sie print, um die Ausgabe in derselben Zeile zu halten, und puts "", um in eine neue Zeile zu wechseln:
for row in 1..3
for col in 1..3
print "#{row * col} "
end
puts ""
endSie können verschiedene Schleifentypen mischen, z. B. eine times-Schleife innerhalb einer for-Schleife verwenden.
Probier es selbst
# Eingabe lesen
rows = gets.to_i
cols = gets.to_i
# TODO: Schreibe deinen Code unten
# Verwende verschachtelte Schleifen, um ein Rechteck aus Sternchen auszugeben
# Verwende print für Sternchen innerhalb einer Zeile und puts, um zur nächsten Zeile zu wechselnDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – Einfache LogikLogische Operatoren Teil 3Logische Operatoren Teil 47Rechnungs-Splitter
WillkommensnachrichtBenutzereingaben abfragen10FizzBuzz mit Twist
SpielübersichtDie FizzBuzz-Methode13Arrays für Fortgeschrittene
Array Slicing mit BereichenArray Slicing mit IndizesArray-OperatorenInclude? Methode2Variablen und Datentypen
Zahlen und VariablenDatentyp StringDatentyp BooleanDatentyp SymbolDatentypen prüfenBenennungskonventionenZusammenfassung – Erstellung von Variablen5Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerVerschachtelte If - Else-AnweisungenUnless-Anweisung8Schleifen
For-Schleife mit RangesWhile-SchleifeBreakNextRückblick - FakultätTimes-SchleifeUntil-SchleifeVerschachtelte SchleifenRückblick - Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische AbkürzungenWiederholung – Einfache MathematikVergleichsoperatoren6Grundlagen Ein- und Ausgabe
Ausgabe mit putsAusgabe mit print und pAusgabe mit VariablenEingabe mit getsChomp-MethodeTypumwandlungWiederholung - AltersrechnerWiederholung - Wahr oder Falsch