1. Mis on break
lause?
break
lause on üks C-keele juhtlausetest, mida kasutatakse tsüklist või switch
lausest väljumiseks. See katkestab programmi täitmise praeguses plokis ja liigub järgmise käsu juurde, aidates vältida tarbetut töötlemist ning parandada programmi tõhusust. Eriti kasulik on see siis, kui töödeldakse suurt andmemahtu ja mingi tingimuse täitumisel on vaja tsükkel varakult lõpetada.
1.1 break
lause põhistruktuur
break
lause põhisüntaks on järgmine:
break;
See lihtne süntaks võimaldab väljuda tsüklist või switch
plokist.
2. break
lause põhiline kasutus
break
lauset kasutatakse peamiselt for
-, while
– ja do-while
-tsüklites ning switch
lauses. Vaatame nende põhilisi kasutusviise.
2.1 break
for
-tsüklis
Järgmises näites lõpetatakse for
-tsükkel, kui teatud tingimus on täidetud.
#include <stdio.h>
int main() {
for (int i = 0; i < 10; i++) {
if (i == 5) {
break;
}
printf("%d
", i);
}
return 0;
}
Selles näites katkestatakse tsükkel, kui i
väärtus saab 5.
2.2 break
while
-tsüklis
break
lause kasutamine while
-tsüklis:
#include <stdio.h>
int main() {
int i = 0;
while (i < 10) {
if (i == 5) {
break;
}
printf("%d
", i);
i++;
}
return 0;
}
Ka siin väljutakse tsüklist, kui i
saab väärtuseks 5.
2.3 break
switch
-lausega
switch
lauses kasutatakse break
lauset iga juhtumi lõpus, et vältida nn fall-through olukorda ehk juhuslikku üleminekut järgmisele juhtumile.
#include <stdio.h>
int main() {
int score = 2;
switch (score) {
case 1:
printf("Püüa veel
");
break;
case 2:
printf("Natuke veel
");
break;
case 3:
printf("Hästi tehtud
");
break;
default:
printf("Sisestatud väärtus ei ole korrektne
");
break;
}
return 0;
}
Kui score
on 2, väljastatakse “Natuke veel” ning break
abil väljutakse switch
lausest.

3. Praktiline näide: optimeerimine break
abil
break
kasutamine reaalses programmis võimaldab vältida tarbetut töötlemist ning parandada efektiivsust.
3.1 Varajane väljumine tsüklist
Näiteks kui otsitakse kindlat elementi nimekirjas, lõpetatakse tsükkel kohe, kui see on leitud.
#include <stdio.h>
int numbers[] = {1, 2, 3, 4, 5, 6};
int size = sizeof(numbers) / sizeof(numbers[0]);
int target = 4;
int main() {
for (int i = 0; i < size; i++) {
if (numbers[i] == target) {
printf("Leitud indeksil %d
", i);
break;
}
}
return 0;
}
Selles programmis lõpetatakse tsükkel kohe, kui target
leitakse, vältides liigset kordamist.
4. break
kasutamine pesastatud tsüklites
Pesastatud tsüklite (ehk tsüklid tsükli sees) puhul ei pruugi break
avaldusest piisata, et väljuda mitmest tasemest. Selle lahendamiseks kasutatakse tihti lipumuutujat.
4.1 Lipumuutujaga väljumine pesastatud tsüklist
Järgmine näide näitab, kuidas lipumuutujaga väljutakse mitmetasandilisest tsüklist.
#include <stdio.h>
int main() {
int isFind = 0;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (i * j == 16) {
isFind = 1;
break;
}
}
if (isFind) {
break;
}
}
printf("Töötsükkel lõpetatud.
");
return 0;
}
Selles näites seatakse isFind
väärtuseks 1, kui i * j == 16
, ja mõlemad tsüklid lõpetatakse.
4.2 Väljumine pesastatud tsüklitest goto
abil
Mõnel juhul võib kasutada goto
lauset, et väljuda mitmetasandilisest tsüklist. See muudab koodi lihtsamaks sügava pesastatuse korral, kuid goto
liigne kasutamine võib koodi loetavust halvendada.
#include <stdio.h>
int main() {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (i * j == 16) {
goto exit_loops;
}
}
}
exit_loops:
printf("Väljutud pesastatud tsüklitest.
");
return 0;
}
Selles näites kasutatakse goto
lauset, kuid üldiselt on soovitatav eelistada lipumuutujat.
5. break
lause parimad praktikad
Siin on mõned break
lause kasutamise parimad praktikad.
5.1 Väldi liigset break
kasutamist
Kuigi break
on mugav, võib selle ülemäärane kasutamine muuta koodi raskesti loetavaks. Kasuta seda ainult siis, kui see on tõesti vajalik, ja ära riku tsükli loogikat.
5.2 break
ja loogilised tingimused
Kui kasutad break
lauset, hoia loogilised tingimused selged ja arusaadavad, et ka teised arendajad saaksid koodi hõlpsasti mõista.
6. break
ja continue
erinevus
Nii break
kui continue
kasutatakse tsükli sees, kuid nende eesmärk on erinev. break
lõpetab kogu tsükli, samas kui continue
jätab vahele praeguse iteratsiooni ja liigub järgmisele kordusele.
6.1 continue
lause põhistruktuur
continue
lause põhistruktuur on järgmine:
continue;
Näiteks, kui soovite summeerida ainult paaritud arvud, võib kood välja näha järgmiselt:
#include <stdio.h>
int main() {
int sum = 0;
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue;
}
sum += i;
}
printf("Paaritute arvude summa: %d
", sum);
return 0;
}
Selles programmis vahele jäetakse kõik paarisarvud ning summeeritakse ainult paaritud arvud.
7. Kokkuvõte
Selles artiklis selgitasime break
lause põhitõdesid, praktilisi kasutusviise, erinevust continue
lausega, parimaid praktikaid ning ka vigade käsitlemist. break
on võimas tööriist programmi voolu juhtimiseks ja aitab kirjutada tõhusamat koodi.
Rääkisime ka selle kasutamisest pesastatud tsüklites ja goto
lausega kombineerimisel, kuid rõhutasime, et goto
kasutamist tuleks piirata, kuna see võib koodi loetavust ja hooldatavust vähendada. Soovitame üldiselt kasutada lipumuutujat pesastatud tsüklitest väljumiseks.
7.1 Lisamaterjalid
- Teised juhtlausete artiklid:
continue
,goto
,return
kasutamine - Uuri C-keele ametlikke dokumente ja usaldusväärseid materjale, et saada põhjalikumat ülevaadet juhtlausetest.
8. break
lause ja vigade käsitlemine
Lõpetuseks peatume ka break
lause kasutamisel esinevatel tüüpvigadel ja nende vältimisel. Vale kasutamine võib viia soovimatute tulemuste või vigadeni programmis.
8.1 Levinumad vead
break
puudub vajalikus kohas: Kui tingimused pole õigesti seadistatud, võib tsükkel jääda lõpmatult käima.- Vale kasutus keerulises loogikas: Mitmetasandiliste tsüklite või keeruliste tingimuste puhul võib
break
raskendada koodi mõistmist teiste arendajate jaoks.
8.2 Vigade käsitlemise parimad praktikad
- Selged tingimused: Määra
break
kasutamise puhul väljumistingimused üheselt. - Kasuta kommentaare: Keerulisema loogika puhul lisa kommentaar, miks
break
on kasutusel – see aitab hiljem koodi üle vaadata.
Kokkuvõte
break
lause on oluline tööriist C-keeles programmi juhtimiseks. Selles artiklis käsitlesime selle põhitõdesid, praktilisi näiteid, erinevusi continue
lausega, parimaid tavasid ja vigade käsitlemist. Kasuta neid teadmisi, et kirjutada tõhusat ja loetavat koodi!