C-keele continue-lausete kasutamine: Süntaks, näited ja parimad tavad

1. continue-lause ülevaade ja selle olulisus

Mis on continue-lause?

continue-lause on C-keele juhtlause, mida kasutatakse korduvates tsüklites (for, while, do-while). See võimaldab, kui teatud tingimus on täidetud, vahele jätta ülejäänud tsükli sees oleva koodi ja liikuda järgmise korduseni. Nii saab vältida tarbetuid toiminguid ja kirjutada efektiivsemat koodi.

continue-lause eelised ja puudused

continue-lause on kasulik voohalduse jaoks, kuid kui seda kasutatakse valesti, võib see vähendada koodi loetavust. Näiteks, kui kasutada mitu continue-lauseid ühes tsüklis, võib koodi käitumine muutuda raskesti mõistetavaks. Seetõttu on oluline kasutada continue-lauset hoolikalt ja õigetes kohtades.

2. continue-lause põhisüntaks

continue-lause süntaks

continue-lause süntaks on lihtne ja näeb välja järgmiselt:

continue;

Kui see lause täidetakse, katkestatakse käesolev tsükli iteratsioon ning liigutakse järgmisele. See aitab vältida tarbetuid toiminguid kindlate tingimuste korral ning võimaldab kirjutada tõhusamaid programme.

continue– ja break-lause erinevus

continue-lausel on sarnane juhtlause break, kuid neid kasutatakse erinevatel eesmärkidel. continue jätkab järgmise tsükli kordusega ilma tsüklit lõpetamata, samas kui break lõpetab kogu tsükli täielikult. Seega kasutatakse continue-lauset siis, kui soovitakse osa tsükli töötlemisest vahele jätta, ja break-lauset siis, kui on vaja tsükkel täielikult lõpetada.

侍エンジニア塾

3. continue-lause põhilised kasutusviisid

for-tsüklis continue-lause näide

for-tsüklis võimaldab continue-lause kindla tingimuse korral liikuda järgmise korduseni. Järgmises näites jäetakse i paarisväärtuste korral töötlemine vahele.

#include <stdio.h>

int main() {
    for(int i = 0; i < 10; i++) {
        if(i % 2 == 0) {
            continue;  // Jäta vahele, kui i on paaris
        }
        printf("%dn", i);
    }
    return 0;
}

Selles programmis täidetakse continue-lause, kui i on paarisarv, ning printf jäetakse vahele. Väljundis kuvatakse seega ainult paaritud arvud.

while-tsüklis continue-lause näide

Ka while-tsüklis saab kasutada continue-lauset. Kui continue täidetakse, jätkab while järgmise kordusega.

#include <stdio.h>

int main() {
    int i = 0;
    while(i < 10) {
        i++;
        if(i % 2 == 0) {
            continue;  // Jäta vahele, kui i on paaris
        }
        printf("%dn", i);
    }
    return 0;
}

Selles näites täidetakse continue-lause, kui i on paarisarv, ning printf jäetakse vahele. Edasi liigutakse järgmisele kordusele ja kuvatakse ainult paaritud arvud.

do-while-tsüklis continue-lause näide

Ka do-while-tsüklis saab kasutada continue-lauset, kuid do-while täidetakse alati vähemalt korra, mis muudab continue kasutust veidi erinevaks.

#include <stdio.h>

int main() {
    int i = 0;
    do {
        i++;
        if(i % 2 == 0) {
            continue;  // Jäta vahele, kui i on paaris
        }
        printf("%dn", i);
    } while(i < 10);
    return 0;
}

Selles programmis täidetakse continue-lause, kui i on paarisarv ning printf jäetakse vahele. do-while-tsükkel jätkub seni, kuni i on väiksem kui 10.

4. continue-lause kasutamise näited

Kuidas kasutada continue-lauset pesastatud tsüklites

continue-lauset saab kasutada ka pesastatud tsüklite sees. Allolevas näites jäetakse sisemise tsükli j=2 korral töötlemine vahele.

#include <stdio.h>

int main() {
    for(int i = 0; i < 5; i++) {
        for(int j = 0; j < 5; j++) {
            if(j == 2) {
                continue;  // Jäta vahele, kui j=2
            }
            printf("i:%d, j:%dn", i, j);
        }
    }
    return 0;
}

Selles programmis täidetakse continue-lause, kui j on 2 ning printf jäetakse vahele. Seega väljundis ei kuvata j:2 väärtusi ja programm töötab efektiivsemalt.

Näide, kuidas jätta vahele tsüklis kindlad tingimused

continue-lause on väga kasulik, kui on vaja tsüklis teatud tingimused vahele jätta. Järgmises näites jäetakse massiivi negatiivsed väärtused vahele ning kuvatakse ainult positiivsed arvud.

#include <stdio.h>

int main() {
    int data[10] = {1, -1, 2, -2, 3, -3, 4, -4, 5, -5};
    for(int i = 0; i < 10; i++) {
        if(data[i] < 0) {
            continue;  // Jäta vahele, kui väärtus on negatiivne
        }
        printf("%dn", data[i]);
    }
    return 0;
}

Selles koodis täidetakse continue-lause, kui massiivi element on negatiivne, ja väljundis kuvatakse ainult positiivsed arvud.

5. continue-lause kasutamisel tähelepanu ja parimad tavad

Liigne kasutus võib vähendada koodi loetavust

Kuigi continue-lause on mugav, võib selle liiga sage kasutus vähendada koodi loetavust. Eriti pesastatud tsüklites võib raskeks muutuda aru saada, millal koodiosa vahele jäetakse. Seetõttu tuleks continue-lauset kasutada võimalikult vähe.

Alternatiivsed meetodid continue-lause asemel

continue-lause asemel võib kasutada ka tingimuslikku haru, pöörates tingimuse ümber. Näiteks võib kasutada järgmist lahendust:

#include <stdio.h>

int main() {
    for(int i = 0; i < 10; i++) {
        if(i % 2 != 0) {
            printf("%dn", i);
        }
    }
    return 0;
}

Selles koodis täidetakse printf ainult siis, kui i on paaritu arv. See võimaldab hoida koodi loetavana ilma continue-lauseta.

Parimad tavad koodi lihtsana hoidmiseks

continue-lauset kasutades on soovitatav järgida järgmisi punkte:

  • Kasuta continue-lauset vaid minimaalselt, et hoida koodi lihtsana.
  • Lisa kommentaare, et selgitada, miks ja kus continue-lauset kasutatakse.
  • Kaalu alternatiivseid lahendusi ja vali sobivaim struktuur.

6. Praktika: continue-lausega programmeerimisülesanded

Ülesanne 1: Kasutaja määratud arvu vahelejätmine

Koosta programm, mis väljastab arvud 1 kuni 10, jättes vahele kasutaja määratud arvu. Näiteks kui kasutaja sisestab “3”, on väljund “1 2 4 5 6 7 8 9 10”.

#include <stdio.h>

int main() {
    int num;
    printf("Sisesta number, mida soovid vahele jätta (1-10): ");
    scanf("%d", &num);

    for(int i = 1; i <= 10; i++) {
        if(i == num) {
            continue;  // Jäta kasutaja määratud arv vahele
        }
        printf("%d ", i);
    }
    return 0;
}

Selles programmis kasutatakse continue-lauset, et vahele jätta kasutaja määratud arv. Nii jäetakse ainult see number vahele ja ülejäänud väljastatakse.

Ülesanne 2: Pesastatud tsüklis continue-lause kasutamine

Koosta programm, mis väljastab i ja j kombinatsioonid kahe pesastatud tsükli abil, jättes vahele j=3 juhtumid.

#include <stdio.h>

int main() {
    for(int i = 0; i < 5; i++) {
        for(int j = 0; j < 5; j++) {
            if(j == 3) {
                continue;  // Jäta vahele, kui j=3
            }
            printf("i:%d, j:%dn", i, j);
        }
    }
    return 0;
}

Selles programmis kasutatakse continue-lauset sisemises tsüklis, et vahele jätta j=3. Ülejäänud kombinatsioonid väljastatakse.

Ülesanne 3: Andmete efektiivne töötlemine continue-lausega

Koosta programm, mis töötleb massiivi ja jätab vahele kõik negatiivsed väärtused.

#include <stdio.h>

int main() {
    int data[10] = {1, -1, 2, -2, 3, -3, 4, -4, 5, -5};
    for(int i = 0; i < 10; i++) {
        if(data[i] < 0) {
            continue;  // Jäta vahele, kui väärtus on negatiivne
        }
        printf("%dn", data[i]);
    }
    return 0;
}

Selles koodis kasutatakse continue-lauset, et jätta vahele negatiivsed väärtused. Nii töödeldakse ja väljastatakse ainult vajalikud andmed.

7. Kokkuvõte

continue-lause on mugav juhtlause, millega saab tsüklites teatud tingimustel jätta koodiosa vahele ja liikuda järgmisele kordusele. Õigesti kasutades aitab see vältida tarbetuid toiminguid ja kirjutada efektiivsemat koodi. Siiski võib liigkasutamine vähendada koodi loetavust, seetõttu kasuta seda vaid vajadusel ja kaalu tingimuslike harude või funktsioonide kasutamist alternatiivina.

continue-lause tõhusa kasutamise punktid

  • Väldi tarbetuid toiminguid ja tee tsükkel tõhusamaks, jättes vahele ebavajalikud osad tingimuste alusel.
  • Kasuta continue-lauset mõõdukalt, et hoida koodi loetavana.
  • Kaalu ka alternatiivseid lahendusi (tingimuslikud harud, funktsioonid) ning vali sobivaim viis.

Õpi rohkem

Et continue-lauset paremini mõista, tasub uurida ka teisi juhtlauseid (nt break, return) ja mõista nende erinevusi. Praktilised harjutused aitavad kinnistada teadmisi ning kogeda continue-lause eeliseid erinevates olukordades.