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

muuda

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

While-tsükkel

muuda

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

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

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

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)