Eine Schleife ist eine Anweisung, die so lange ausgeführt wird, bis eine Bedingung erfüllt ist. Die Syntax für eine while-Schleife lautet wie folgt:
while (condition) {Exp}
Hinweis : Denken Sie daran, irgendwann eine Abschlussbedingung zu schreiben, da sonst die Schleife auf unbestimmte Zeit fortgesetzt wird.
Beispiel 1:
Lassen Sie uns ein sehr einfaches Beispiel durchgehen, um das Konzept der while-Schleife zu verstehen. Sie erstellen eine Schleife und fügen nach jedem Lauf 1 zur gespeicherten Variablen hinzu. Sie müssen die Schleife schließen, daher weisen wir R ausdrücklich an, die Schleife zu beenden, wenn die Variable 10 erreicht hat.
Hinweis : Wenn Sie den aktuellen Schleifenwert anzeigen möchten, müssen Sie die Variable in die Funktion print () einschließen.
#Create a variable with value 1begin <- 1#Create the loopwhile (begin <= 10){#See which we arecat('This is loop number',begin)#add 1 to the variable begin after each loopbegin <- begin+1print(begin)}
Ausgabe:
## This is loop number 1[1] 2## This is loop number 2[1] 3## This is loop number 3[1] 4## This is loop number 4[1] 5## This is loop number 5[1] 6## This is loop number 6[1] 7## This is loop number 7[1] 8## This is loop number 8[1] 9## This is loop number 9[1] 10## This is loop number 10[1] 11
Beispiel 2:
Sie haben eine Aktie zum Preis von 50 Dollar gekauft. Wenn der Preis unter 45 fällt, wollen wir ihn kurzschließen. Ansonsten behalten wir es in unserem Portfolio. Der Preis kann nach jeder Schleife zwischen -10 und +10 um 50 schwanken. Sie können den Code wie folgt schreiben:
set.seed(123)# Set variable stock and pricestock <- 50price <- 50# Loop variable counts the number of loopsloop <- 1# Set the while statementwhile (price > 45){# Create a random price between 40 and 60price <- stock + sample(-10:10, 1)# Count the number of looploop = loop +1# Print the number of loopprint(loop)}
Ausgabe:
## [1] 2## [1] 3## [1] 4## [1] 5## [1] 6## [1] 7
cat('it took',loop,'loop before we short the price. The lowest price is',price)
Ausgabe:
## it took 7 loop before we short the price.The lowest price is 40