1. Sissejuhatus
Programmeerimises on tsüklid hädavajalikud tõhusaks ülesannete täitmiseks. C-keeles on mitmeid tsüklistruktuure, millest while-lause on parim valik, kui korduste arv pole eelnevalt teada. Selles artiklis selgitatakse C-keele while-lauset algajatele arusaadavalt, alates põhikasutusest kuni keerukamate näideteni. Koos tegelike koodinäidetega õpitakse while-lause eeliseid ning selle praktilist rakendamist.
2. Mis on C-keele while-lause?
while-lause on tsüklistruktuur, mis kordab käsklusi seni, kuni tingimus on tõene (true). Kui tingimus muutub vääraks (false), siis tsükkel lõpeb. Järgmine koodinäide illustreerib while-lause põhistruktuuri:
int i = 0;
while (i < 10) {
printf("i väärtus on: %d\n", i);
i++; // Suurendab loendurit
}
Selles koodis kuvatakse i
väärtus seni, kuni see on väiksem kui 10. Kui i
saavutab 10, tsükkel lõpeb. while-lause on kasulik olukordades, kus korduste arv pole eelnevalt teada.
3. Millal kasutada while-lauset?
while-lauset on eriti kasulik kasutada, kui korduste arv pole eelnevalt määratud. Näiteks kui programm ootab kasutajalt sisestust või töötleb andmeid seni, kuni teatud tingimus on täidetud. Järgmine koodinäide demonstreerib programmi, mis võtab kasutajalt numbreid vastu seni, kuni sisestatakse negatiivne arv.
int value = 0;
while (value >= 0) {
printf("Sisestage number: ");
scanf("%d", &value);
printf("Sisestatud väärtus on: %d\n", value);
}
See programm jätkab kasutaja sisestuse vastuvõtmist, kuni sisestatakse negatiivne arv. Sellistes olukordades on while-lausel suur paindlikkus.
4. Levinud vead while-lauses
Lõputu tsükkel on üks sagedasemaid vigu while-lauses. See juhtub siis, kui tsükli lõpetamise tingimus pole kunagi täidetud. Järgmine koodinäide näitab tüüpilist viga:
int i = 0;
while (i < 10) {
printf("i väärtus on: %d\n", i);
// i++ on unustatud!
}
Selles koodis ei uuendata i
väärtust, mistõttu tingimus i < 10
jääb igavesti tõeseks, põhjustades lõputu tsükli. Lõputud tsüklid võivad süsteemi koormata, seega on oluline alati veenduda, et tsükkel suudab mingil hetkel lõppeda.

5. Praktilised näited while-lause kasutamisest
Siin on mõned näited, kuidas while-lauset tegelikes programmides kasutada.
Näide 1: Kasutaja sisendi töötlemine
Programm kuvab sõnumit seni, kuni kasutaja sisestab “lõpeta”.
char input[50];
while (strcmp(input, "lõpeta") != 0) {
printf("Sisestage sõnum (sisestage 'lõpeta' lõpetamiseks): ");
scanf("%s", input);
printf("Sisestatud sõnum: %s\n", input);
}
Näide 2: Korduv liitmine
Järgmine programm liidab numbreid seni, kuni summa ületab 100.
int sum = 0;
int num = 1;
while (sum < 100) {
sum += num;
num++;
printf("Praegune summa: %d\n", sum);
}
Need näited näitavad, kuidas while-lauset saab kasutada korduvate protsesside juhtimiseks erinevates olukordades.
6. Edasijõudnud while-lause kasutusviisid
while-lauset saab kasutada ka keerukamate protsesside jaoks. Alljärgnev näide demonstreerib kahemõõtmelise massiivi töötlemist pesastatud while-tsüklitega.
int i = 0, j = 0;
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
while (i < 3) {
j = 0;
while (j < 3) {
printf("%d ", matrix[i][j]);
j++;
}
printf("\n");
i++;
}
See kood kasutab pesastatud while-tsükleid kahemõõtmelise massiivi sisu kuvamiseks. while-lausel on suur kasutusvõimalus ka keerukamate andmetöötlusülesannete puhul.
7. Võrdlus teiste tsüklitega
C-keeles on mitmeid erinevaid tsüklistruktuure. Järgnevas tabelis võrreldakse while-lauset teiste tsüklitega.
Tsükkel | Kasutusolukord | Omadused |
---|---|---|
while-lause | Kui korduste arv pole eelnevalt teada | Tingimust kontrollitakse enne igat iteratsiooni |
for-lause | Kui korduste arv on eelnevalt määratud | Algväärtustus, tingimus ja uuendamine saab määrata ühes reas |
do-while-lause | Kui soovitakse, et vähemalt üks iteratsioon toimuks | Tingimust kontrollitakse pärast esimest iteratsiooni |
See tabel aitab valida sobivaima tsüklistruktuuri vastavalt programmi nõuetele.
8. Kokkuvõte
Selles artiklis selgitasime põhjalikult C-keele while-lauset. While-lause on paindlik ja võimaldab dünaamiliselt korduvate tingimuste alusel protsesse juhtida. On oluline vältida lõputuid tsükleid ning kasutada while-lauset efektiivselt, et parandada programmi jõudlust ja loetavust.
Soovitame katsetada artiklis toodud koodinäiteid ning harjutada while-tsüklite kasutamist erinevates olukordades. Head programmeerimist!