C-duuris olevad tsüklid: For, While, Do While.ping Väited [Näited]
⚡ Nutikas kokkuvõte
C-keele tsüklid kordavad lauseplokki seni, kuni mõni juhtimistingimus muutub vääraks, ning keel pakub sisenemise ja väljumise kontrollitud korduseks kolm konstruktsiooni – while-tsükli, do-while-tsükli ja for-tsükli.

Mis on Loop C-s?
Looping C-keele laused täidavad lausete jada mitu korda, kuni määratud tingimus muutub vääraks. C-keele tsükkel koosneb kahest osast: tsükli kehast ja juhtlausest. Juhtlause on teatud tingimuste kombinatsioon, mis suunavad tsükli keha täitma, kuni määratud tingimus muutub vääraks. C-keele tsükli eesmärk on korrata sama koodi mitu korda.
Silmuste tüübid C-s
Sõltuvalt juhtlause positsioonist programmis, vaataping C-keeles jagunevad laused kahte tüüpi:
- Sissepääsu kontrollitud silmus
- Välju kontrollitud ahelast
C-keele sisenemiskontrolli tsüklis kontrollitakse enne tsükli põhiosa käivitamist tingimust. Seda nimetatakse ka eelkontrolli tsükliks.
Väljumisega kontrollitud tsüklis kontrollitakse tingimust pärast tsükli põhiosa täitmist. Seda nimetatakse ka järelkontrolli tsükliks.
Näidissilmus
Juhtimistingimused peavad olema täpselt defineeritud ja täpsustatud, vastasel juhul käivitub tsükkel lõpmatu arv kordi. Tsüklit, mis ei peatu täitmist ja töötleb lauseid mitu korda, nimetatakse lõpmatuks tsükliks. Lõpmatut tsüklit nimetatakse ka "lõputuks tsükliks". Järgnevalt on toodud mõned lõpmatu tsükli omadused:
- Lõpetamistingimust pole määratud.
- Määratud tingimused ei täida kunagi.
Määratud tingimus määrab, kas tsükli keha käivitada või mitte.
Programmeerimiskeel "C" pakub meile kolme tüüpi tsüklikonstruktsioone:
- While-tsükkel
- Do-while tsükkel
- For-tsükkel
| Sr. Ei. | Silmuse tüüp | Kirjeldus |
|---|---|---|
| 1. | Kuigi Loop | While-tsüklis hinnatakse tingimust enne tsükli kehaosa töötlemist. Kui tingimus on tõene, siis ja ainult siis täidetakse tsükli keha. |
| 2. | Do-While Loop | Tingimuses do…while täidetakse tingimus alati pärast tsükli kehaosa. Seda nimetatakse ka väljumisega juhitavaks ahelaks. |
| 3. | Loopi jaoks | For-tsüklis sooritatakse algväärtus ainult üks kord, seejärel testib ja võrdleb tingimus loendurit iga iteratsiooni järel fikseeritud väärtusega, stopping for-tsükkel, kui tagastatakse „väär”. |
Kuigi silmus C-s
While-tsükkel on kõige otsekohesem silmus.ping struktuur. C programmeerimiskeeles on tsükli süntaks järgmine:
Kuigi silmuse süntaks C-s
while (condition) {
statements;
}
See on sisenemiskontrolliga silmus. While-tsüklis hinnatakse tingimust enne tsükli kehaosa töötlemist. Kui tingimus on tõene, siis ja ainult siis täidetakse tsükli keha. Pärast tsükli kehaosa täitmist läheb juhtimine uuesti algusesse ja kontrollitakse, kas tingimus on tõene, sama protsessi teostatakse seni, kuni tingimus muutub vääraks. Kui tingimus muutub valeks, läheb juhtimine ahelast välja.
Pärast tsüklist väljumist läheb juhtimine lausetele, mis asuvad vahetult pärast tsüklit. Silmuse kehas võib olla rohkem kui üks lause. Kui see sisaldab ainult ühte väidet, ei ole lokkis traksid kohustuslikud. Siiski on hea tava kasutada lokkis breketeid, isegi kui kehas on üksainus väide.
Kui tingimus ei ole tõene tsüklis while, siis tsükli keha ei käivitata isegi mitte üks kord. See erineb do while tsüklis, mida me varsti näeme.
Järgmine programm illustreerib tsüklit C programmeerimisnäites:
#include<stdio.h> #include<conio.h> int main() { int num=1; //initializing the variable while(num<=10) //while loop with condition { printf("%d\n",num); num++; //incrementing operation } return 0; }
Väljund:
1 2 3 4 5 6 7 8 9 10
Ülaltoodud programm illustreerib while-tsükli kasutamist. Ülaltoodud programmis oleme trükkinud numbrite seeriad vahemikus 1 kuni 10, kasutades while-tsüklit.
Kuigi tsükkel C-s programmeerimine
- Oleme initsialiseerinud a muutuja nimetatakse num väärtusega 1. Me hakkame printima arvu 1-st kuni 10-ni, seega muutuja initsialiseeritakse väärtusega 1. Kui soovite printida alates 0-st, siis määrake initsialiseerimise ajal väärtus 0.
- Mõne aja tsükli jooksul oleme esitanud tingimuse (num<=10), mis tähendab, et tsükkel täidab keha, kuni numbri num väärtuseks saab 10. Pärast seda tsükkel lõpetatakse ja juhtimine jääb tsüklist välja.
- Silmuse põhiosas on meil trükkimisfunktsioon meie numbri printimiseks ja suurendamisoperatsioon tsükli täitmise väärtuse suurendamiseks. Num algväärtus on 1, pärast täitmist muutub see 2-ks ja järgmisel täitmisel 3-ks. Protsess jätkub, kuni väärtuseks saab 10, seejärel prindib seeria konsoolile ja tsükli lõpetab. .
'\n' kasutatakse vormindamise eesmärgil, mis tähendab, et väärtus prinditakse uuele reale.
Do-While tsükkel C-s
Do…while tsükkel C-s on sarnane while-tsükliga, välja arvatud see, et tingimus täidetakse alati pärast tsükli kehaosa. Seda nimetatakse ka väljumisega juhitavaks ahelaks.
Do while tsükli süntaks C-programmeerimiskeeles on järgmine:
Do-While tsükli süntaks C-s
do { statements } while (expression);
Nagu nägime ajatsüklis, täidetakse keha siis ja ainult siis, kui tingimus on tõene. Mõnel juhul peame tsükli keha vähemalt korra täitma, isegi kui tingimus on vale. Seda tüüpi toimingut saab teha kasutades do-while tsüklit.
Tingimuses do-while täidetakse tsükli keha alati vähemalt üks kord. Pärast keha hukamist kontrollib see seisukorda. Kui tingimus on tõene, täidab see uuesti tsükli keha, vastasel juhul viiakse juhtimine tsüklist välja.
Sarnaselt while-tsükliga, kui juhtseade väljub tsüklist, ilmuvad laused, mis on vahetult pärast tsükli käivitamist.
Kriitiline erinevus while- ja do-while-tsükli vahel on see, et while-tsüklis kirjutatakse while alguses. Do-while-tsüklis kirjutatakse while-tingimus lõppu ja lõpeb semikooloniga (;)
Järgmine tsükliprogramm C-s illustreerib do-while tsükli tööd:
Allpool on C-näites do-while tsükkel numbri 2 tabeli printimiseks:
#include<stdio.h> #include<conio.h> int main() { int num=1; //initializing the variable do //do-while loop { printf("%d\n",2*num); num++; //incrementing operation }while(num<=10); return 0; }
Väljund:
2 4 6 8 10 12 14 16 18 20
Ülaltoodud näites oleme printinud korrutustabeli 2, kasutades tsüklit do-while. Vaatame, kuidas suutis programm sarja trükkida.
Do-While Loop C-programmeerimisel
- Esiteks oleme initsialiseerinud muutuja 'num' väärtusega 1. Seejärel oleme kirjutanud do-while tsükli.
- Tingis on meil printimisfunktsioon, mis prindib seeria, korrutades numbri num väärtuse 2-ga.
- Iga sammu järel suureneb num väärtus 1 võrra ja see trükitakse ekraanile.
- Algselt on num väärtus 1. Tsükli kehas täidetakse printimisfunktsioon järgmiselt: 2*num kus arv=1, siis 2*1=2, seega trükitakse väärtus kaks. See jätkub seni, kuni numbri num väärtusest saab 10. Pärast seda tsükkel lõpetatakse ja käivitatakse lause, mis asub vahetult pärast tsüklit. Sel juhul tagastage 0.
Silmuse jaoks C-s
For silmus on tõhusam tsükli struktuur "C" programmeerimisel. For silmuse süntaksi üldine struktuur C-s on järgmine:
For Loopi süntaks C-s
for (initial value; condition; incrementation or decrementation ) { statements; }
- For-tsükli algväärtus esitatakse ainult üks kord.
- Tingimus on Boole'i avaldis, mis testib ja võrdleb loendurit fikseeritud väärtusega pärast iga iteratsiooni, stopping for-tsükkel, kui tagastatakse „väär”.
- Suurendamine/vähendamine suurendab (või vähendab) loendurit määratud väärtuse võrra.
Järgmine programm illustreerib for-tsüklit C programmeerimisnäites:
#include<stdio.h> int main() { int number; for(number=1;number<=10;number++) //for loop to print 1-10 numbers { printf("%d\n",number); //to print the number } return 0; }
Väljund:
1 2 3 4 5 6 7 8 9 10
Ülaltoodud programm prindib numbrite seeriad vahemikus 1-10, kasutades tsüklit.
Loop in C programmeerimine
- Väärtuste salvestamiseks oleme deklareerinud int andmetüübiga muutuja.
- For-tsüklis oleme lähtestamise osas määranud muutuja numbrile väärtuse 1. Tingimuse osas oleme täpsustanud oma tingimust ja seejärel juurdekasvu osa.
- Silmuse põhiosas on meil prindifunktsioon, et printida numbrid konsooli uuele reale. Meil on väärtus üks salvestatud arvuna, pärast esimest iteratsiooni väärtust suurendatakse ja see muutub 2-ks. Nüüd on muutuja numbril väärtus 2. Tingimust kontrollitakse uuesti ja kuna tingimus on tõene, siis käivitatakse tsükkel, ja see prindib ekraanile kaks. Seda tsüklit jätkatakse seni, kuni muutuja väärtuseks saab 10. Pärast seda tsükkel lõpetatakse ja ekraanile trükitakse seeria 1-10.
C-s võib for-tsüklis olla mitu avaldist, mis on igas osas komadega eraldatud.
Näiteks:
for (x = 0, y = num; x < y; i++, y--) { statements; }
Samuti võime esialgse väärtuse avaldise, tingimuse ja/või juurdekasvu vahele jätta, lisades semikooloni.
Näiteks:
int i=0; int max = 10; for (; i < max; i++) { printf("%d\n", i); }
Pange tähele, et silmuseid saab pesastada ka seal, kus on välimine ja sisemine silmus. Iga välimise tsükli iteratsiooni korral kordab sisemine tsükkel kogu oma tsüklit.
Vaatleme järgmist näidet mitme tingimusega for-tsüklis, mis kasutab C-programmeerimises korrutustabeli väljastamiseks tsüklit pesastatud:
#include <stdio.h> int main() { int i, j; int table = 2; int max = 5; for (i = 1; i <= table; i++) { // outer loop for (j = 0; j <= max; j++) { // inner loop printf("%d x %d = %d\n", i, j, i*j); } printf("\n"); /* blank line between tables */ }}
Väljund:
1 x 0 = 0 1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 2 x 0 = 0 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10
For-tsüklite pesastamist saab teha mis tahes tasemel. Pesastatud tsüklid peaksid olema piisavalt taandatud, et kood oleks loetav. Mõnes C-keele versioonis on pesastamine piiratud kuni 15 tsükliga, kuid mõned pakuvad rohkem.
Pesastatud silmuseid kasutatakse enamasti massiivirakendustes, mida näeme edasistes õpetustes.
Lisaks kolmele tsüklitüübile pakub C kaks lauset, mis muudavad tsükli kulgemist seestpoolt.
Katkestuslause C-s
Breaklauset kasutatakse peamiselt lüliti avaldusSee on kasulik ka koheseks peatamiseks.ping silmus.
Vaatleme järgmist programmi, mis lisab ajatsüklist väljumiseks pausi:
#include <stdio.h> int main() { int num = 5; while (num > 0) { if (num == 3) break; printf("%d\n", num); num--; }}
Väljund:
5 4
Jätka avaldusega C
Kui soovite järgmise iteratsiooni juurde liikuda, kuid tsüklisse jääda, peaksite kasutama jätkamislauset.
Näiteks:
#include <stdio.h> int main() { int nb = 7; while (nb > 0) { nb--; if (nb == 5) continue; printf("%d\n", nb); }}
Väljund:
6 4 3 2 1
Seega jäetakse väärtus 5 vahele.
Millist silmust valida?
Silmuse valimine on programmeerija jaoks alati raske ülesanne, tsükli valimiseks tehke järgmist.
- Analüüsige probleemi ja kontrollige, kas see nõuab eel- või järeltestimist.
- Kui on vaja eeltesti, kasutage while- või for-tsüklit.
- Kui on vaja järeltesti, kasutage do-while tsüklit.




