Kuidas toimivad while-tsüklid R-is?
Silmused on programmeerimise üks põhimõisteid. Need tagavad, et teatud koodilõigud täidetakse korduvalt teatud tingimuse alusel. R-keeles kasutatavate while-silmustega korratakse lõiku seni, kuni eelnevalt määratud tingimus muutub valeks.
Milleks kasutatakse R-keeles while-tsükleid?
While-tsüklid kasutatakse tingimusest sõltuva koodiblokki korduvaks täitmiseks. Niikaua, kui see tingimus on tõene, täidetakse while-tsüklis olev kood.
R-programmeerimises kasutatakse silmuseid sageli R-nimekirja elementide uurimiseks ja nende suhtes individuaalsete tegevuste sooritamiseks. Näiteks võite kuvada ekraanil mis tahes stringi R-stringide nimekirjast. Lisaks kasutatakse R-s while-silmuseid koodi tingimuslikuks täitmiseks. While-silmuse sarnased silmused on paljude tuntud sorteerimisalgoritmide aluseks, mis korraldavad andmebaasi teatud kriteeriumide järgi.
R-keeles while-tsüklite struktuur ja süntaks
R-keeles on while-tsüklite süntaks sarnane enamiku teiste programmeerimiskeelte while-tsüklite süntaksiga. Tsükli päises, mis algab märksõnaga while, on tingimus määratud sulgudes. Tsükli korpuse täitmiseks peab viimane olema tõene. See korpus ei ole midagi muud kui tsükli päise järel olev omaette koodiblokk, mis on sulgudes.
Selle illustreerimiseks oleme loonud näite. See R-tsükli näide näitab while-tsüklit, mis väljastab väärtused 1 kuni 10:
x <- 1
while (x <= 10) {
print(x)
x <- x + 1
}RBubblesort R-keeles näide
Bubblesort on klassikaline sorteerimisalgoritm, mida kasutatakse R-vektori või R-massiivi elementide sorteerimiseks kasvavas järjekorras. Selles sorteerimisalgoritmis kasutatakse while-tsüklit sorteerimiskoodi täitmiseks, kuni kõik vektori elemendid on sorteeritud:
bubblesort <- function(x) {
swapped <- TRUE
n <- length(x) - 1
while (swapped) {
swapped <- FALSE
for (i in 1:n) {
if (x[i] > x[i+1]) {
tmp <- x[i]
x[i] <- x[i+1]
x[i+1] <- tmp
swapped <-TRUE
}
}
}
return(x)
}REespool toodud koodis luuakse R-funktsioon nimega bubblesort. See tagab numbrilise vektori järjestamise kasvavas järjekorras. While-tsüklit kasutatakse vahetusprotsessi läbiviimiseks, mis on Bubblesorti jaoks hädavajalik, kuni sorteerimine on lõpetatud.
R-keeles while-tsükli katkestamine
Teatud tingimuse korral while-tsükli ennetähtaegseks lõpetamiseks võite kasutada märksõna „break”. See tagab, et tsükkel lõpetatakse ja sinna ei pöörduta tagasi. Siin on näide „break”-lause kasutamisest:
x <- 10
while (x >= 0) {
print(x)
if (x == 5) {
break
}
x <- x - 1
}REespool toodud tsükkel väljastab ekraanile numbrid 10 kuni 5. Kui muutuja „x” jõuab väärtuseni 5, täidetakse R-keele tingimus „if” ja tsükkel lõpetatakse ennetähtaegselt käsu „break” abil.
Muud silmused R-is
R-keeles ei ole while-tsükkel ainus tsükkel. On olemas ka for-tsükkel, mida peetakse sageli loendamise tsükliks, ja repeat-tsükkel, mida kasutatakse koodi mitmekordseks täitmiseks , sõltumata tingimusest. Repeat-tsüklitest tuleb väljuda märksõnaga „break”, vastasel juhul on tegemist lõputute tsüklitega.
For-tsükkel R-is
For-tsükleid kasutatakse, kui iteratsioonide arv on eelnevalt teada. Iteratsioonide arv on tsükli pealkirjas selgesõnaliselt määratud. For-tsükkel, mis väljastab numbrid 1 kuni 5, näeb välja järgmine:
for (z in 1:5) {
print(i)
}RKorda silmus R-is
R-keeles kasutatakse kordusringe koodi mitmekordseks täitmiseks, sõltumata tingimusest. Kui te pole programmeerimises alles algaja, siis olete ilmselt tuttav do-while-ringidega teistest programmeerimiskeeltest, nagu Java. R-keeles pole selgesõnalist do-while-ringi, kus koodiblokk täidetakse vähemalt üks kord. Kuid seda funktsionaalsust saab hõlpsasti rakendada kordusringidega:
x <- 1
repeat {
print(x)
if (x >= 10) {
break
}
x <- x + 1
}REespool toodud koodinäide väljastab numbrid 1 kuni 10. Kood täidetakse vähemalt üks kord (klassikalises do-while-tsüklis koodiblokis „do”) enne „if”-lauset, mis lõpetab tsükli, kui määratud tingimus on tõene. be736e550b1141b116c6745223aecfd7
d1d76d85f27f41c7f98c49bcb7641848
37b614e8ff1142c9025056cc2b26f936
f73edeee674565a3ba93d621869650b4
ef1f873d0fe0237afbeeec20ad1812be