Mine sisu juurde

Tsükkel (programmeerimine)

Allikas: Vikipeedia
(Ümber suunatud leheküljelt Silmus (programmeerimine))

Tsükkel ehk silmus on konstruktsioon programmeerimiskeeltes, mis võimaldab ühte koodilõiku korduvalt käitada.

Tsükkel koosneb üldjuhul täidetavast koodist ja tingimuslausest.

Tsükli tüübid

[muuda | muuda lähteteksti]

Eelkontrolliga tsüklis kontrollitakse esmalt, kas tingimus kehtib. Kui kehtib, siis täidetakse tsükli kood ja kontrollitakse tingimust uuesti. Kui tingimus ei kehti, siis väljutakse tsüklist.

Järelkontrolliga tsüklis täidetakse kõigepealt kood, seejärel kontrollitakse tingimust. Kui tingimus kehtib, täidetakse kood uuesti, kui mitte, siis väljutakse tsüklist.

Tsüklite näited

[muuda | muuda lähteteksti]

While-tsükkel

[muuda | muuda lähteteksti]

While-tsükkel on eelkontrolliga tsükkel, mis on olemas enamikus programmeerimiskeeltes. Pythonis näeb see välja selline:

x = 0
while x < 5:
    print(x)
    x = x + 1

Do-while-tsükkel

[muuda | muuda lähteteksti]

Do-while-tsükkel on järelkontrolliga tsükkel. See on olemas näiteks programmeerimiskeeltes Java ja C. Näide C-s:

int x = 0;
do
{
    printf("%d\n", x);
    x++;
} while(x < 5);

Operaatorit ++ kasutatakse tihti iteratsioonimuutuja (loenduri) suurendamiseks ühe võrra. x++ on sama, mis x = x + 1. Muutuja vähendamiseks ühe võrra saab kasutada operaatorit --.

For-tsükkel

[muuda | muuda lähteteksti]

For-tsükkel võimaldab mõnes keeles läbida järjendit elementide kaupa. Näiteks Pythonis

for x in [2,4,6]:
    print(x)

Kolmeosaline for-tsükkel on olemas Javas ja C-s. Käsk for koosneb kolmest semikooloniga eraldatud osast: 1) kood, mis täidetakse ühekordselt enne tsüklit, 2) tingimuslause, 3) kood, mis täidetakse pärast igat tsükli sammu (iteratsiooni).

int x;
for(x=0; x<5; x++)
{
    printf("%d\n", x);
}

Kõik kolm osa on valikulised, seega on korrektne ka

int x = 0;
for(;;)
{
    if (!(x < 5)) break;
    printf("%d\n", x);
    x++;
}

Tsükli juhtimiskäsud

[muuda | muuda lähteteksti]

Paljudes keeltes on tsüklite juures kasutusel käsud break ja continue. Käsk break väljub tsüklist. Käsk continue lõpetab käimasoleva iteratsiooni ja alustab järgmist, sealjuures kontrollitakse tingimuslauset, kui see on olemas.

Näide Pythonis, mis trükib välja kõik paaritud arvud järjendis enne elementi 0 (trükitakse 1, 3, 5):

for x in [1,2,3,4,5,0,6,7]:
    if x == 0:
        break
    if x % 2 == 0:
        continue
    print(x)