Tsükkel (programmeerimine)

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

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

While-tsükkel

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

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

Do-while-tsükkel

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

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

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)