Menu
Coddy logo textTech

Verschachtelte Schleifen

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

Sie können eine Schleife innerhalb einer anderen Schleife platzieren, um eine verschachtelte Schleife zu erstellen. Die innere Schleife wird für jede Iteration der äußeren Schleife vollständig durchlaufen, was nützlich ist, wenn man mit Kombinationen oder gitterartigen Mustern arbeitet.

for (i in 1:3) {
  for (j in 1:2) {
    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, geht j von 1 bis 2. Dann wird i zu 2, und j beginnt wieder von vorne von 1 bis 2.

Ein praktisches Beispiel ist das Erstellen 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 springen.

challenge icon

Aufgabe

Einfach

Lies zwei Zahlen aus der Eingabe: rows und cols.

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

Gib jede Zeile in einer eigenen Zeile aus, wobei die Werte durch ein einzelnes 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 wie folgt aussehen:

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

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

Spickzettel

Eine geschachtelte Schleife (nested loop) ist eine Schleife, die sich innerhalb einer anderen Schleife befindet. Die innere Schleife wird für jede Iteration der äußeren Schleife vollständig durchlaufen.

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

Für jeden Wert von i durchläuft die innere Schleife alle Werte von j.

Beispiel zur Erstellung eines Multiplikationsmusters:

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

Die äußere Schleife steuert die Zeilen, während die innere Schleife jede Spalte innerhalb dieser Zeile verarbeitet. Verwenden Sie cat("\n"), um nach Abschluss jeder Zeile einen Zeilenumbruch auszugeben.

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: Schreiben Sie Ihren Code unten
# Verwenden Sie verschachtelte Schleifen, um ein Rechteck auszugeben, bei dem jede Zelle Zeile + Spalte enthält
# Verwenden Sie cat(), um Werte getrennt durch Leerzeichen 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