R Vir Loop


Vir Loops

'n forLus word gebruik om oor 'n ry te herhaal:

Voorbeeld

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

Dit is minder soos die forsleutelwoord in ander programmeertale, en werk meer soos 'n iteratormetode soos gevind in ander objekgeoriënteerde programmeertale.

Met die forlus kan ons 'n stel stellings uitvoer, een keer vir elke item in 'n vektor, skikking, lys, ens.

Jy sal in 'n latere hoofstuk leer oor lyste en vektore , ens.

Voorbeeld

Druk elke item in 'n lys:

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

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

Voorbeeld

Druk die aantal dobbelstene:

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

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

Die forlus vereis nie 'n indekseringsveranderlike om vooraf te stel nie, soos met whilelusse.


Breek

Met die breakstelling kan ons die lus stop voordat dit deur al die items geloop het:

Voorbeeld

Stop die lus by "kersie":

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

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

Die lus sal stop by "kersie" omdat ons gekies het om die lus te voltooi deur die breakstelling te gebruik wanneer xgelyk is aan "kersie" ( x == "cherry").


Volgende

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

Voorbeeld

Slaan "piesang" oor:

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

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

Wanneer die lus "piesang" verbysteek, sal dit dit oorslaan en voortgaan om te lus.


Yahtzee!

As .. Anders gekombineer met 'n For Loop

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

Voorbeeld

Druk "Yahtzee!" As die dobbelsteennommer 6 is:

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"))
  }
}

As die lus die waardes bereik wat wissel van 1 tot 5, druk dit "No Yahtzee" en sy nommer. Wanneer dit die waarde 6 bereik, druk dit "Yahtzee!" en sy nommer.


Geneste lusse

Jy kan ook 'n lus binne-in 'n lus hê:

Voorbeeld

Druk die byvoeglike naamwoord van elke vrug in 'n lys:

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

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