R For-Schleife


Für Schleifen

Eine forSchleife wird zum Iterieren über eine Sequenz verwendet:

Beispiel

for (x in 1:10) {
  print(x)
}

Dies ähnelt weniger dem forSchlüsselwort in anderen Programmiersprachen und funktioniert eher wie eine Iteratormethode, wie sie in anderen objektorientierten Programmiersprachen zu finden ist.

Mit der forSchleife können wir eine Reihe von Anweisungen ausführen, einmal für jedes Element in einem Vektor, Array, einer Liste usw.

Sie werden in einem späteren Kapitel mehr über Listen und Vektoren usw. erfahren.

Beispiel

Drucken Sie jeden Artikel in einer Liste:

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
  print(x)
}

Beispiel

Drucken Sie die Anzahl der Würfel:

dice <- c(1, 2, 3, 4, 5, 6)

for (x in dice) {
  print(x)
}

Die forSchleife benötigt keine vorher zu setzende Indizierungsvariable wie bei whileSchleifen.


Brechen

Mit der breakAnweisung können wir die Schleife stoppen, bevor sie alle Elemente durchlaufen hat:

Beispiel

Stoppen Sie die Schleife bei "Kirsche":

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
  if (x == "cherry") {
    break
  }
  print(x)
}

Die Schleife stoppt bei "Kirsche", weil wir uns dafür entschieden haben, die Schleife mit der breakAnweisung when xis equal to "cherry" ( x == "cherry") zu beenden.


Nächste

Mit der nextAnweisung können wir eine Iteration überspringen, ohne die Schleife zu beenden:

Beispiel

„Banane“ überspringen:

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
  if (x == "banana") {
    next
  }
  print(x)
}

Wenn die Schleife "Banane" passiert, wird sie übersprungen und die Schleife fortgesetzt.


Yahtzee!

If .. Else Kombiniert mit einer For-Schleife

Um ein praktisches Beispiel zu demonstrieren, sagen wir, wir spielen Yahtzee!

Beispiel

Drucken "Yahtzee!" Wenn die Würfelzahl 6 ist:

dice <- 1:6

for(x in dice) {
  if (x == 6) {
    print(paste("The dice number is", x, "Yahtzee!"))
  } else {
    print(paste("The dice number is", x, "Not Yahtzee"))
  }
}

Wenn die Schleife die Werte von 1 bis 5 erreicht, gibt sie "No Yahtzee" und seine Nummer aus. Wenn es den Wert 6 erreicht, druckt es "Yahtzee!" und seine Nummer.


Verschachtelte Schleifen

Sie können auch eine Schleife innerhalb einer Schleife haben:

Beispiel

Drucken Sie das Adjektiv jeder Frucht in einer Liste aus:

adj <- list("red", "big", "tasty")

fruits <- list("apple", "banana", "cherry")
  for (x in adj) {
    for (y in fruits) {
      print(paste(x, y))
  }
}