R While-lus
lussen
Loops kunnen een codeblok uitvoeren zolang aan een gespecificeerde voorwaarde wordt voldaan.
Loops zijn handig omdat ze tijd besparen, fouten verminderen en code leesbaarder maken.
R heeft twee lusopdrachten:
while
lussenfor
lussen
R While-lussen
Met de while
lus kunnen we een reeks instructies uitvoeren zolang een voorwaarde WAAR is:
Voorbeeld
Print i
zolang als i
kleiner is dan 6:
i <- 1
while (i < 6) {
print(i)
i <- i + 1
}
In het bovenstaande voorbeeld blijft de lus getallen van 1 tot 5 produceren. De lus stopt bij 6 omdat 6 < 6
het ONWAAR is.
De while
lus vereist dat relevante variabelen gereed zijn, in dit voorbeeld moeten we een indexeringsvariabele definiëren, i
, die we instellen op 1.
Opmerking: vergeet niet om i te verhogen, anders zal de lus voor altijd doorgaan.
Pauze
Met de break
instructie kunnen we de lus stoppen, zelfs als de while-voorwaarde TRUE is:
Voorbeeld
Verlaat de lus als i
gelijk is aan 4.
i <- 1
while (i < 6) {
print(i)
i <- i + 1
if
(i == 4) {
break
}
}
De lus stopt bij 3 omdat we ervoor hebben gekozen om de lus af te sluiten met de break
instructie when i
is gelijk aan 4 ( i == 4
).
Volgende
Met de next
instructie kunnen we een iteratie overslaan zonder de lus te beëindigen:
Voorbeeld
Sla de waarde van 3 over:
i <- 0
while (i < 6) {
i <- i + 1
if (i == 3) {
next
}
print(i)
}
Wanneer de lus de waarde 3 passeert, wordt deze overgeslagen en wordt de lus voortgezet.
Jahtzee!
If .. Else gecombineerd met een While-lus
Laten we, om een praktisch voorbeeld te demonstreren, zeggen dat we een spelletje Yahtzee!
Voorbeeld
Afdrukken "Yahtzee!" Als het dobbelsteennummer 6 is:
dice <- 1
while (dice <= 6) {
if (dice < 6) {
print("No
Yahtzee")
} else {
print("Yahtzee!")
}
dice <- dice
+ 1
}
Als de lus de waarden tussen 1 en 5 passeert, wordt "No Yahtzee" afgedrukt. Telkens wanneer het de waarde 6 passeert, wordt "Yahtzee!" afgedrukt.