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:

  • whilelussen
  • forlussen

R While-lussen

Met de whilelus kunnen we een reeks instructies uitvoeren zolang een voorwaarde WAAR is:

Voorbeeld

Print izolang als ikleiner 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 < 6het ONWAAR is.

De whilelus 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 breakinstructie kunnen we de lus stoppen, zelfs als de while-voorwaarde TRUE is:

Voorbeeld

Verlaat de lus als igelijk 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 breakinstructie when iis gelijk aan 4 ( i == 4).



Volgende

Met de nextinstructie 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.