R Terwyl Loop


Lusse

Lusse kan 'n blok kode uitvoer solank 'n gespesifiseerde toestand bereik word.

Lusse is handig omdat dit tyd bespaar, foute verminder en kode meer leesbaar maak.

R het twee lus-opdragte:

  • while lusse
  • for lusse

R Terwyl lusse

Met die whilelus kan ons 'n stel stellings uitvoer solank 'n voorwaarde WAAR is:

Voorbeeld

Druk isolank as iwat minder as 6 is:

i <- 1
while (i < 6) {
  print(i)
  i <- i + 1
}

In die voorbeeld hierbo sal die lus voortgaan om getalle te produseer wat wissel van 1 tot 5. Die lus sal stop by 6 omdat 6 < 6dit ONWAAR is.

Die whilelus vereis dat relevante veranderlikes gereed is, in hierdie voorbeeld moet ons 'n indekseringsveranderlike definieer i, wat ons op 1 stel.

Let wel: onthou om i te verhoog, anders sal die lus vir ewig voortduur.


Breek

Met die breakstelling kan ons die lus stop selfs al is die while-voorwaarde WAAR:

Voorbeeld

Verlaat die lus as igelyk is aan 4.

i <- 1
while (i < 6) {
  print(i)
  i <- i + 1
  if (i == 4) {
    break
  }
}

Die lus sal by 3 stop omdat ons gekies het om die lus te voltooi deur die breakstelling te gebruik wanneer igelyk is aan 4 ( i == 4).


Volgende

Met die nextstelling kan ons 'n iterasie oorslaan sonder om die lus te beëindig:

Voorbeeld

Slaan die waarde van 3 oor:

i <- 0
while (i < 6) {
  i <- i + 1
  if (i == 3) {
    next
  }
  print(i)
}

Wanneer die lus die waarde 3 verbysteek, sal dit dit oorslaan en voortgaan om te lus.


Yahtzee!

As .. Anders gekombineer met 'n While-lus

Om 'n praktiese voorbeeld te demonstreer, kom ons sê ons speel 'n speletjie Yahtzee!

Voorbeeld

Druk "Yahtzee!" As die dobbelsteennommer 6 is:

dice <- 1
while (dice <= 6) {
  if (dice < 6) {
    print("No Yahtzee")
  } else {
    print("Yahtzee!")
  }
  dice <- dice + 1
}

As die lus die waardes wat wissel van 1 tot 5 slaag, druk dit "No Yahtzee". Wanneer dit die waarde 6 verbysteek, druk dit "Yahtzee!".