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.

  • 🔁 Silmuse anatoomia: Iga C tsükkel seob korduvate lausete hulga juhttingimusega, mis otsustab, millal kordus lõpeb.
  • 🚪 Sissepääs vs väljapääs: Sisenemisega kontrollitud while ja for tsüklid testivad esmalt tingimust, samas kui väljumisega kontrollitud do-while tsükkel käivitab oma sisu alati üks kord.
  • ♻️ Kuigi tsükkel: While tsükkel kontrollib enne iga läbimist oma tingimust, mis sobib juhtudeks, kus iteratsioonide arv pole ette teada.
  • 🔂 Do-while tsükkel: Do-while tsükkel käivitab sisu enne testimist, seega garanteerib see ühe käivituse isegi siis, kui tingimus on väär.
  • 🔢 Tsükli jaoks: For-tsükkel pakib initsialiseerimise, tingimuse ja uuendamise ühele reale, mis sobib ideaalselt fikseeritud vahemiku loendamiseks.
  • Katkesta ja jätka: BREAK käsk väljub tsüklist koheselt, samas kui continue käsk hüppab järgmise iteratsiooni juurde tsüklist lahkumata.

C-duuris olevad tsüklid: For, While, Do While.ping Avaldused

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:

  1. Sissepääsu kontrollitud silmus
  2. 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.

Silmuste tüübid C-s

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:

  1. Lõpetamistingimust pole määratud.
  2. 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:

  1. While-tsükkel
  2. Do-while tsükkel
  3. 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 silmus C-s

Kuigi tsükkel C-s programmeerimine

  1. 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.
  2. 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.
  3. 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 tsükkel C-s

Do-While Loop C-programmeerimisel

  1. Esiteks oleme initsialiseerinud muutuja 'num' väärtusega 1. Seejärel oleme kirjutanud do-while tsükli.
  2. Tingis on meil printimisfunktsioon, mis prindib seeria, korrutades numbri num väärtuse 2-ga.
  3. Iga sammu järel suureneb num väärtus 1 võrra ja see trükitakse ekraanile.
  4. 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;
}
  1. For-tsükli algväärtus esitatakse ainult üks kord.
  2. 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”.
  3. 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.

Silmuse jaoks C-s

Loop in C programmeerimine

  1. Väärtuste salvestamiseks oleme deklareerinud int andmetüübiga muutuja.
  2. 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.
  3. 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.

  1. Analüüsige probleemi ja kontrollige, kas see nõuab eel- või järeltestimist.
  2. Kui on vaja eeltesti, kasutage while- või for-tsüklit.
  3. Kui on vaja järeltesti, kasutage do-while tsüklit.

KKK

Lõputu tsükkel töötab igavesti, kui selle tingimus ei muutu kunagi vääraks. Selle vältimiseks uuenda tsükli põhiosas olevat muutujat ja veendu, et tingimus saab lõpuks täidetud, või lisa kaitsemeetmena katkestuslause.

Lause „break“ peatab tsükli täielikult ja liigutab juhtimise esimesele järgnevale lausele. Lause „continue“ jätab vahele ainult praeguse iteratsiooni ülejäänud laused ja hüppab tsükli järgmisse tsüklisse.

Standard C-l puudub sisseehitatud iga inimese kohta käiv või vahemikupõhine tsükkel nagu C++ or PythonMassiivi itereeritakse käsitsi for- või while-tsükliga, kasutades indeksit või pointerit, mis käib läbi iga elemendi.

Ei. goto-lause sooritab tingimusteta hüppe märgistatud reale ja võib imiteerida loo-d.ping, aga see ei ole struktureeritud tsükkel. "for", "while" või "do-while" kasutamine muudab koodi palju loetavamaks.

Komaoperaator võimaldab ühel for-tsüklil korraga hallata mitut muutujat. Funktsioonis for (x = 0, y = n; x < y; x++, y–) käivitavad nii initsialiseerimis- kui ka uuendamisosa igal läbimisel kaks avaldist.

Jah. Kombineeri tingimused sulgudes olevate loogiliste operaatoritega AND (&&) ja OR (||). Näiteks, kui while (a < 10 && b > 0) jääb samaks, siisping ainult siis, kui mõlemad tingimused jäävad tõeks.

Jah. Tehisintellekti abilised kodeerimiseks saavad lihtsa kirjelduse põhjal luua while-, do-while- ja for-tsükleid, tuvastada ükshaaval esinevaid vigu ja märkida tingimusi, mis võivad igavesti kesta. RevVäljundi vaatamine on endiselt oluline, sest genereeritud loogika ei ole alati õige.

GitHubi koopia Soovitab tippimise ajal täielikke tsükli sisusid, täidab automaatselt loendureid ja tingimusi ning pakub lühikese kommentaari põhjal välja pesastatud tsükli mustreid. See töötab populaarsetes redaktorites ja kiirendab korduvat C-koodimist.

Võta see postitus kokku järgmiselt: