Verschachtelte Schleifen
Teil des Abschnitts Grundlagen der Ruby-Journey von Coddy. Lektion 46 von 88.
Du kannst eine Schleife in eine andere Schleife einfügen, um eine verschachtelte Schleife zu erstellen. Die innere Schleife wird bei jeder Iteration der äußeren Schleife vollständig durchlaufen. Dadurch eignet sich dieses Muster für die Arbeit mit Gittern, Tabellen oder Kombinationen.
rows = 2
cols = 3
for i in 1..rows
for j in 1..cols
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 1, während j die Werte 1, 2, 3 annimmt. Dann wird i zu 2 und j nimmt erneut die Werte 1, 2, 3 an. rows und cols ändern sich nie: Sie geben den Schleifen lediglich an, wann sie stoppen sollen.
Ein praktisches Beispiel ist die Erstellung eines einfachen Multiplikationsmusters:
for row in 1..3
for col in 1..3
print "#{row * col} "
end
puts ""
endDies gibt ein 3x3-Raster von Produkten aus. print lässt die Werte in derselben Zeile stehen, und puts "" wechselt nach jeder vollständig ausgegebenen Zeile in eine neue Zeile. Du kannst auch verschiedene Schleifentypen kombinieren, zum Beispiel eine times-Schleife innerhalb einer for-Schleife.
Aufgabe
EinfachLies zwei Ganzzahlen aus der Eingabe ein:
rows– die Anzahl der Zeilencols– die Anzahl der Spalten
Verwende verschachtelte Schleifen, um ein Rechteck aus Sternchen (*) mit den angegebenen Abmessungen 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 wechseln.
Wenn die Eingaben beispielsweise 3 und 4 sind, sollte die Ausgabe so aussehen:
* * * *
* * * *
* * * *Wenn die Eingaben 2 und 5 sind, sollte die Ausgabe so aussehen:
* * * * *
* * * * *Nach dem letzten * einer Zeile steht kein Leerzeichen.
Verwende für jede Schleife einen neuen Zähler (zum Beispiel row für die Zeilen und col für die Sternchen in einer Zeile) und vergleiche ihn mit rows oder cols. Ändere rows und cols selbst nicht: Für jede Zeile werden die cols erneut benötigt.
Probier es selbst
# Eingabe einlesen
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 die 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 47Rechner zum Aufteilen der Rechnung
WillkommensnachrichtBenutzereingaben erfassen10FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Methode13Arrays für Fortgeschrittene
Array-Slicing mit BereichenArray-Slicing mit IndizesArray-OperatorenInclude?-Methode2Variablen und Datentypen
Zahlen und VariablenString-DatentypBoolean-DatentypSymbol-DatentypDatentypen überprüfenNamenskonventionenWiederholung – Variablen erstellen5Entscheidungsfindung
If-AnweisungIf - ElseRückblick – Einfacher TaschenrechnerVerschachteltes If - ElseUnless-Anweisung8Schleifen
For-Schleife mit BereichenWhile-SchleifeBreakNextRückblick – FakultätTimes-SchleifeUntil-SchleifeVerschachtelte SchleifenRückblick – Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische KurzschreibweisenRückblick – Einfache MathematikVergleichsoperatoren6Grundlegende Ein- und Ausgabe
Ausgabe mit putsAusgabe mit print und pAusgabe mit VariablenEingabe mit getsDie chomp-MethodeTypumwandlungWiederholung – AltersrechnerWiederholung – Wahr oder FalschÜbe selbstständig: Online-Ruby-Compiler