Kaip veikia ciklai R kalboje?
Ciklai yra viena iš pagrindinių programavimo sąvokų. Jie užtikrina, kad tam tikros kodo dalys būtų vykdomos pakartotinai tam tikromis sąlygomis. Naudojant ciklus „while“ kalboje R, tam tikra dalis kartojama tol, kol anksčiau nurodyta sąlyga tampa neteisinga.
Kam naudojami ciklai „while“ kalboje R?
While ciklai naudojami tam, kad pakartotinai vykdytų kodo bloką, priklausomai nuo sąlygos. Kol ši sąlyga yra teisinga, while ciklo kodas yra vykdomas.
Ciklai dažnai naudojami R programavime, norint sužinoti apie R sąrašo elementus ir atlikti konkrečius veiksmus su jais atskirai. Pavyzdžiui, galite išvesti bet kurią eilutę ekrane iš R eilutės sąrašo. Be to, R ciklai naudojami sąlyginiam kodo vykdymui. Ciklai, tokie kaip while ciklas, yra daugelio žinomų rūšiavimo algoritmų, kurie organizuoja duomenų bazę pagal tam tikrus kriterijus, pagrindas.
R kalbos while ciklų struktūra ir sintaksė
R kalbos while ciklų sintaksė yra panaši į daugumos kitų programavimo kalbų while ciklų sintaksę. Ciklo antraštėje, kuri pradedama raktiniu žodžiu while, sąlyga nurodyta skliaustuose. Kad ciklo korpusas būtų vykdomas, ši sąlyga turi būti teisinga. Šis korpusas yra ne kas kita, kaip jo paties kodas po ciklo antraštės, įrašytas į skliaustelius.
Norėdami tai iliustruoti, sukūrėme pavyzdį. Šis R kilpos pavyzdys rodo kilpą „while“, kuri išveda reikšmes nuo 1 iki 10:
x <- 1
while (x <= 10) {
print(x)
x <- x + 1
}RBubblesort R pavyzdyje
Bubblesort yra klasikinis rūšiavimo algoritmas, naudojamas R vektoriaus arba masyvo elementams R rūšiuoti didėjančia tvarka. Šiame rūšiavimo algoritme, kol visi vektoriaus elementai yra surūšiuoti, rūšiavimo kodas vykdomas naudojant while ciklą:
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)
}RPirmiau pateiktame kode sukurta R funkcija, vadinama bubblesort. Ji užtikrina, kad skaitmeninis vektorius būtų surūšiuotas didėjančia tvarka. Ciklas while naudojamas keitimo procesui, kuris yra būtinas Bubblesort, atlikti, kol rūšiavimas bus baigtas.
Pertrauka cikle „while“ kalboje R
Norėdami iš anksto išeiti iš ciklo „while“ esant tam tikroms sąlygoms, galite naudoti raktinį žodį „break“. Tai užtikrina, kad ciklas bus paliktas ir į jį nebus grįžtama. Štai pavyzdys, paaiškinantis „break“ teiginį:
x <- 10
while (x >= 0) {
print(x)
if (x == 5) {
break
}
x <- x - 1
}RPirmiau pateikta kilpa ekrane išveda skaičius nuo 10 iki 5. Kai kintamasis „x“ pasiekia vertę 5, vykdoma R „if“ sąlyga ir kilpa nutraukiama anksčiau laiko, iškviesdama „break“.
Kitos kilpos R
R kalboje „while“ ciklas nėra vienintelis ciklo tipas. Taip pat yra „for“ ciklas, kuris dažnai laikomas skaičiavimo ciklu, ir „repeat“ ciklas, kuris naudojamas kodui vykdyti keletą kartų, nepriklausomai nuo sąlygos. „Repeat“ ciklai turi būti nutraukti naudojant raktinį žodį „break“, kitaip jie tampa begaliniais ciklais.
For ciklas R kalboje
For ciklai naudojami, kai kartojimų skaičius yra žinomas iš anksto. Kartojimų skaičius yra aiškiai nurodytas ciklo antraštėje. For ciklas, kuris išveda skaičius nuo 1 iki 5, atrodo taip:
for (z in 1:5) {
print(i)
}RPakartokite kilpą R
Pakartojimo ciklai R kalboje naudojami kodui vykdyti keletą kartų, nepriklausomai nuo sąlygos. Jei jau turite programavimo patirties, tikriausiai esate susipažinę su do-while ciklais iš kitų programavimo kalbų, pvz., Java. R kalboje nėra aiškaus do-while ciklo, kur kodas būtų vykdomas bent vieną kartą. Tačiau šią funkciją galima lengvai įgyvendinti naudojant pakartojimo ciklus:
x <- 1
repeat {
print(x)
if (x >= 10) {
break
}
x <- x + 1
}RPateiktame kodo pavyzdyje išvedami skaičiai nuo 1 iki 10. Kodas vykdomas bent vieną kartą (klasikinėje „do-while“ kilpoje „do“ kodų bloke) prieš „if“ teiginį, kuris užbaigia kilpą, jei nurodyta sąlyga yra teisinga. be736e550b1141b116c6745223aecfd7
d1d76d85f27f41c7f98c49bcb7641848
37b614e8ff1142c9025056cc2b26f936
f73edeee674565a3ba93d621869650b4