Menu
CoddyTech

Verschachtelte Schleifen

Teil des Abschnitts Grundlagen der R-Journey von Coddy. Lektion 44 von 78.

Du kannst eine Schleife in eine andere Schleife setzen, um eine verschachtelte Schleife zu erstellen. Die innere Schleife wird bei jeder Iteration der äußeren Schleife vollständig ausgeführt. Das ist nützlich, wenn du mit Kombinationen oder gitterartigen Mustern arbeitest.

rows <- 3
cols <- 2
for (i in 1:rows) {
  for (j in 1:cols) {
    cat("i =", i, ", j =", j, "\n")
  }
}

Ausgabe:

i = 1 , j = 1 
i = 1 , j = 2 
i = 2 , j = 1 
i = 2 , j = 2 
i = 3 , j = 1 
i = 3 , j = 2

Für jeden Wert von i durchläuft die innere Schleife alle Werte von j. Wenn i 1 ist, läuft j von 1 bis 2. Dann wird i zu 2, und j beginnt erneut bei 1 und läuft wieder bis 2. rows und cols ändern sich nie: Sie geben den Schleifen nur an, wann sie stoppen sollen.

Ein praktisches Beispiel ist die Erstellung eines einfachen Multiplikationsmusters:

for (row in 1:3) {
  for (col in 1:3) {
    cat(row * col, " ")
  }
  cat("\n")
}

Ausgabe:

1  2  3  
2  4  6  
3  6  9

Die äußere Schleife steuert die Zeilen, während die innere Schleife jede Spalte innerhalb dieser Zeile verarbeitet. Nachdem jede Zeile abgeschlossen ist, geben wir einen Zeilenumbruch aus, um zur nächsten Zeile zu wechseln.

challenge icon

Aufgabe

Einfach

Lies zwei Zahlen aus der Eingabe ein: rows und cols.

Verwende verschachtelte Schleifen, um ein Rechteck aus Zahlen auszugeben, in dem jede Zelle die Summe ihrer Zeilennummer und Spaltennummer enthält. Die Zeilen sind von 1 bis rows und die Spalten von 1 bis cols nummeriert.

Gib jede Zeile in einer eigenen Zeile aus, wobei die Werte durch genau ein Leerzeichen getrennt sind. Verwende cat() für die Ausgabe und füge nach jeder Zeile einen Zeilenumbruch hinzu.

Wenn die Eingaben zum Beispiel 3 und 4 sind, sollte die Ausgabe so aussehen:

2 3 4 5 
3 4 5 6 
4 5 6 7

In der ersten Zeile (Zeile 1) lauten die Werte 1+1=2, 1+2=3, 1+3=4, 1+4=5. In der zweiten Zeile (Zeile 2) lauten die Werte 2+1=3, 2+2=4, 2+3=5, 2+4=6 und so weiter.

cat() fügt zwischen den übergebenen Werten ein Leerzeichen ein, daher gibt cat(row + col, "") die Zahl gefolgt von genau einem Leerzeichen aus.

Verwende für jede Schleife einen neuen Zähler (zum Beispiel row für die Zeilen und col für die Zahlen in einer Zeile) und vergleiche ihn mit rows oder cols. Ändere rows und cols selbst nicht: Jede Zeile benötigt erneut cols.

Probier es selbst

# Eingabe lesen
con <- file("stdin", "r")
rows <- as.integer(suppressWarnings(readLines(con, n = 1)))
cols <- as.integer(suppressWarnings(readLines(con, n = 1)))
close(con)

# TODO: Schreibe deinen Code unten
# Verwende verschachtelte Schleifen, um ein Rechteck auszugeben, in dem jede Zelle row + column enthält
# Verwende cat(), um die Werte durch Leerzeichen getrennt auszugeben, mit einem Zeilenumbruch nach jeder Zeile
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-R-Compiler