C keele do while-tsükkel: põhikasutus, näited ja praktilised nipid

1. Sissejuhatus

Tsüklite olulisus C keeles

Programmeerimises on sama toimingu korduv täitmine ehk tsüklid väga olulised. C keeles kasutatakse korduvate toimingute jaoks for-tsüklit, while-tsüklit ning selle artikli teemaks olevat do while-tsüklit. Selles artiklis keskendume do while-tsüklile, selgitades selle põhitõdesid ja praktilisi näiteid.

年収訴求

2. do while-tsükli põhialused

do while-tsükli põhisüntaks

do while-tsükkel garanteerib, et tsükli sees olevad käsud täidetakse vähemalt üks kord. Süntaks on järgmine:

do {
    // Teostatavad käsud
} while (tingimus);

Selle süntaksi puhul täidetakse kõigepealt do-plokis olevad käsud ning alles seejärel hinnatakse tingimust. Kui tingimus on true, käivitatakse tsükkel uuesti; kui false, siis tsükkel lõpeb.

Erinevus while-tsükliga

while-tsükli puhul hinnatakse tingimust kõigepealt ja ainult siis, kui see on true, täidetakse tsükli sees olevad käsud. do while-tsükli puhul hinnatakse tingimust pärast esimese korra täitmist, mistõttu täidetakse käsud vähemalt üks kord.

3. do while-tsükli kasutuskohad

Kasutaja sisendi korduv kontroll

do while-tsükkel on kasulik näiteks kasutaja sisendi kontrollimiseks. Näiteks kui on vaja paroole mitu korda sisestada, saab do while-tsükliga kergesti kontrollida, kas sisestus on õige ja vajadusel kasutajalt uut sisestust küsida.

Korduvad protsessid mängudes

Mängude programmeerimisel kasutatakse do while-tsüklit olukordades, kus näiteks mängija peab tegema valikuid seni, kuni ta otsustab mängu jätkata. Sellisel juhul hoiab do while-tsükkel mängu töösolekus, kuni valitakse “Jätka mängu”.

4. do while-tsükli näited

do while-tsükli põhikasutus

Järgmisena on toodud näide do while-tsükli põhikasutusest.

#include <stdio.h>

int main() {
    int i = 0;

    do {
        printf("Loend: %dn", i);
        i++;
    } while (i < 5);

    return 0;
}

Selles näites täidetakse kõigepealt do-plokis olevad käsud ning tsükkel jätkub seni, kuni i väärtus on väiksem kui 5. Väljundiks on numbrid 0 kuni 4.

Kasutaja sisendi näide

Järgmine näide näitab, kuidas kasutajalt küsitakse sisendit seni, kuni see vastab soovitud tingimustele.

#include <stdio.h>

int main() {
    int number;

    do {
        printf("Sisesta arv 1 kuni 10: ");
        scanf("%d", &number);
    } while (number < 1 || number > 10);

    printf("Sisestatud arv: %dn", number);

    return 0;
}

Selles koodis palutakse kasutajal sisestada arv vahemikus 1 kuni 10. Kui sisestus jääb väljapoole seda vahemikku, küsitakse uuesti. Tsükkel jätkub, kuni sisestus on õige.

5. Lõputu tsükkel ja selle juhtimine

Lõputu tsükli loomine

do while-tsüklit saab kasutada ka lõputu tsükli loomiseks. Lõputu tsükkel tähendab, et tingimus on alati true ning tsükkel ei lõppe kunagi ise.

do {
    // Käsklused, mis täidetakse lõputult
} while (1);

Lõputu tsükli juhtimine

Lõputut tsüklit saab juhtida break– ja continue-käsuga.

  • break-käsk: lõpetab tsükli koheselt.
  • continue-käsk: jätab tsükli sees ülejäänud käsud vahele ning alustab uut tsükli sammu.

Allpool on näide lõputust tsüklist koos break-käsuga.

#include <stdio.h>

int main() {
    int count = 0;

    do {
        printf("Tsükli kordus: %dn", count);
        count++;
        if (count > 5) {
            break;
        }
    } while (1);

    return 0;
}

Selles näites kasutatakse break-käsku, et tsükkel lõppeks, kui count ületab väärtuse 5.

6. Mitme tingimusega do while-tsükkel

Kuidas kasutada mitut tingimust

do while-tsüklis saab kasutada mitut tingimust, ühendades need && (JA) või || (VÕI) loogikaoperaatoriga.

do {
    // Teostatavad käsud
} while (tingimus1 && tingimus2);

Näide keerulisemast tingimusest

Allpool olevas näites kontrollitakse, kas kasutaja sisestatud arv jääb vahemikku 1 kuni 100, ja küsitakse uuesti, kui ei jää.

#include <stdio.h>

int main() {
    int number;

    do {
        printf("Sisesta arv 1 kuni 100: ");
        scanf("%d", &number);
    } while (number < 1 || number > 100);

    printf("Sisestatud arv: %dn", number);

    return 0;
}

Selles näites palutakse sisestada õiges vahemikus olev arv; vastasel juhul kordub küsimine.

7. Kokkuvõte

do while-tsükkel sobib eriti olukordadesse, kus on vaja tagada, et tsükli sees olevad käsud täidetakse vähemalt üks kord. while– ja do while-tsükli erinevuste mõistmine aitab kirjutada paindlikumaid programme. Samuti tasub õppida break ja continue kasutamist ning mitme tingimusega keerukamate tsüklite koostamist, et C keele tsükleid tõeliselt valdada.

8. Harjutusülesanne ja lahendus

Ülesanne

Kirjutage programm, mis küsib kasutajalt täisarvu vahemikus 1 kuni 10 ning küsib uuesti seni, kuni sisestus on õige. Kui õige arv on sisestatud, kuvatakse selle arvu kahekordne väärtus.

Lahendusnäide

#include <stdio.h>

int main() {
    int number;

    do {
        printf("Sisesta arv 1 kuni 10: ");
        scanf("%d", &number);
    } while (number < 1 || number > 10);

    printf("Sisestatud arvu kahekordne väärtus: %dn", number * 2);

    return 0;
}

Selles harjutuses kasutatakse do while-tsüklit, et kontrollida kasutaja sisendit ja vajadusel küsida uuesti, kuni see vastab nõuetele.

9. Lisainfo ja järgmised sammud

Pärast do while-tsükli mõistmist tasub õppida ka teiste tsüklistruktuuride (for– ja while-tsükkel) erinevusi ja kasutusvõimalusi. Järgmise olulise teemana C keeles soovitame tutvuda pointerite ehk viitadega, mille abil saab kirjutada veelgi võimsamaid programme. Soovitame julgelt edasi õppida!

年収訴求