Tsükkel (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
muudaEelkontrolliga 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
muudaWhile-tsükkel
muudaWhile
-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
muudaDo-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
muudaFor
-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
muudaPaljudes 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)