R Vir Loop
Vir Loops
'n for
Lus word gebruik om oor 'n ry te herhaal:
Voorbeeld
for (x in 1:10) {
print(x)
}
Dit is minder soos die for
sleutelwoord in ander programmeertale, en werk meer soos 'n iteratormetode soos gevind in ander objekgeoriënteerde programmeertale.
Met die for
lus kan ons 'n stel stellings uitvoer, een keer vir elke item in 'n vektor, skikking, lys, 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 for
lus vereis nie 'n indekseringsveranderlike om vooraf te stel nie, soos met while
lusse.
Breek
Met die break
stelling 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 break
stelling te gebruik wanneer
x
gelyk is aan "kersie" ( x ==
"cherry"
).
Volgende
Met die next
stelling 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))
}
}