# Kako delujejo zanke while v R?

Zanke so eden od **osnovnih pojmov programiranja**. Zagotavljajo, da se določeni deli kode izvajajo večkrat pod določenim pogojem. Pri zankah while v R se del ponavlja, dokler prej določen pogoj ne postane lažen.

## Za kaj se v R uporabljajo zanke while?

Zankovni cikli se uporabljajo za **ponavljajoče izvajanje bloka kode**, odvisno od pogoja. Dokler je ta pogoj izpolnjen, se izvaja koda v zankovnem ciklu.

V programiranju v jeziku R se zanke pogosto uporabljajo za spoznavanje elementov seznama R in izvajanje posebnih dejanj na njih posamično. Na primer, na zaslonu lahko izpišete kateri koli niz iz seznama nizov R. Poleg tega se zanke while v jeziku R uporabljajo za pogojno izvajanje kode. Zanke, kot je zanka while, so osnova mnogih znanih **algoritmov za razvrščanje**, ki organizirajo bazo podatkov po določenih merilih.

## Struktura in sintaksa zanke while v R

Sintaksa zanke while v R je podobna sintaksi zanke while v večini drugih programskih jezikov. V glavi zanke, ki se uvede s ključno besedo *while*, je pogoj naveden v oklepajih. Ta pogoj mora biti izpolnjen, da se izvede telo zanke. Telo zanke ni nič drugega kot njen lastni blok kode za glavo zanke, zaprt v oklepajih.

Da bi to ponazorili, smo ustvarili primer. Ta primer R zanke prikazuje zanke while, ki izpisujejo vrednosti od 1 do 10:

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

## Primer razvrščanja po velikosti v R

Bubblesort je klasični algoritem za razvrščanje, ki se uporablja za **razvrščanje elementov vektorja R ali matrike v R v naraščajočem vrstnem redu**. V tem algoritmu za razvrščanje se za izvajanje kode za razvrščanje uporablja zanka while, dokler niso razvrščeni vsi elementi vektorja:

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

V zgornji kodi je ustvarjena funkcija R z imenom *bubblesort*. Ta zagotavlja, da je numerični vektor razvrščen v naraščajočem vrstnem redu. Zankovni ciklus while se uporablja za izvedbo procesa izmenjave, ki je bistven za Bubblesort, dokler razvrščanje ni končano.

## Prekinitev zanke while v R

Za **predčasno izhod iz** zanke while pod določenim pogojem lahko uporabite ključno besedo »break«. To zagotovi, da se zanka zapusti in se vanjo ne vstopi ponovno. Tukaj je primer izjave »break« za pojasnilo:

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

Zgornja zanka na zaslonu izpiše številke od 10 do 5. Ko spremenljivka „x“ doseže vrednost 5, se izvede pogoj „if“ v jeziku R in zanka se predčasno prekine s klicem „break“.

## Druge zanke v R

Zanka while v R ni edina vrsta zanke v R. Obstaja tudi zanka for, ki se pogosto obravnava kot vrsta **štetne zanke**, in zanka repeat, ki se uporablja za **večkratno** izvajanje kode **, ne glede na pogoj**. Zanke repeat je treba zapreti s ključno besedo »break«, sicer so neskončne zanke.

### Za zanko v R

Za zanke se uporabljajo, kadar je število ponovitev znano vnaprej. Število ponovitev je izrecno navedeno v glavi zanke. Zanka, ki izpisuje številke od 1 do 5, izgleda takole:

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

### Ponovi zanko v R

Ponavljajoči se cikli v R se uporabljajo za večkratno izvajanje kode, ne glede na pogoj. Če niste ravno začetnik v programiranju, ste verjetno seznanjeni s cikli do-while iz drugih programskih jezikov, kot je Java. V R ni eksplicitnega cikla do-while, v katerem se blok kode izvede vsaj enkrat. Toda to funkcionalnost je mogoče enostavno implementirati s ponavljajočimi se cikli:

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

Zgornji primer kode izpiše številke od 1 do 10. Koda se izvede vsaj enkrat (v klasični zanki do-while v kodnem bloku »do«) pred izjavo »if«, ki zaključi zanko, če je navedeni pogoj resničen.


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/r-med-zanko/](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/r-med-zanko/) for AI/LLM consumption.