# 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:

```R
x <- 1
while (x <= 10) {
    print(x)
    x <- x + 1
}
```

## Bubblesort 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ą:

```R
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)
}
```

Pirmiau 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į:

```R
x <- 10
while (x >= 0) {
    print(x)
    if (x == 5) {
        break
        }
        x <- x - 1
}
```

Pirmiau 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:

```R
for (z in 1:5) {
print(i)
}
```

### Pakartokite 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:

```R
x <- 1
repeat {
    print(x)
    if (x >= 10) {
        break
        }
x <- x + 1
}
```

Pateiktame 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.


This is a markdown version of: [https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/r-kol-kilpa/](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/r-kol-kilpa/) for AI/LLM consumption.