Menu
CoddyTech

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
end

Dies 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 ""
end

Dies 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.

challenge icon

Aufgabe

Einfach

Lies zwei Ganzzahlen aus der Eingabe ein:

  1. rows – die Anzahl der Zeilen
  2. cols – 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 wechseln
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Online-Ruby-Compiler