Loops i C: For, While, Do While looping Udsagn [Eksempler]
⚡ Smart opsummering
Løkker i C gentager en blok af udsagn, indtil en kontrolbetingelse bliver falsk, og sproget leverer tre konstruktioner - while-løkken, do-while-løkken og for-løkken - til indgangs- og udgangskontrolleret gentagelse.

Hvad er Loop i C?
Looping Udsagn i C udfører sekvensen af udsagn mange gange, indtil den angivne betingelse bliver falsk. Et loop i C består af to dele, en loop-del og en kontroludsagn. Kontroludsagnet er en kombination af nogle betingelser, der instruerer loop-delen til at udføres, indtil den angivne betingelse bliver falsk. Formålet med C-loopet er at gentage den samme kode et antal gange.
Typer af løkker i C
Afhængigt af placeringen af en kontrolsætning i et program, seping C-sætninger er opdelt i to typer:
- Indgangsstyret sløjfe
- Afslut kontrolleret sløjfe
I en entry control loop i C kontrolleres en betingelse, før loopens brødtekst udføres. Det kaldes også en pre-checking loop.
I et exit-kontrolleret loop kontrolleres en betingelse efter at loopens brødtekst er udført. Det kaldes også et post-checking loop.
Sample loop
Kontrolbetingelserne skal være veldefinerede og specificerede, ellers vil løkken udføres et uendeligt antal gange. Den løkke, der ikke stopper udførelsen og behandler sætningerne et antal gange, kaldes en uendelig løkke. En uendelig løkke kaldes også en "endeløs løkke". Følgende er nogle karakteristika for en uendelig løkke:
- Der er ikke angivet nogen opsigelsesbetingelse.
- De angivne betingelser opfyldes aldrig.
Den angivne betingelse bestemmer, om løkketeksten skal udføres eller ej.
Programmeringssproget 'C' giver os tre typer loop-konstruktioner:
- While-løkken
- Do-while-løkken
- For-løkken
| Sr. nr. | Loop Type | Beskrivelse |
|---|---|---|
| 1. | Mens Loop | I while-løkke evalueres en betingelse før behandling af en krop af løkken. Hvis en betingelse er sand, og kun derefter, udføres kroppen af en løkke. |
| 2. | Do-While Loop | I en do...while loop udføres betingelsen altid efter brødteksten i en loop. Det kaldes også en udgangskontrolleret sløjfe. |
| 3. | Til Loop | I en for-løkke udføres startværdien kun én gang, derefter tester og sammenligner betingelsen tælleren med en fast værdi efter hver iteration, stopping for-løkken, når falsk returneres. |
Mens Loop in C
En while-løkke er den mest ligefremme løsningping struktur. Mens loop-syntaksen i C-programmeringssproget er som følger:
Syntaks for While Loop i C
while (condition) {
statements;
}
Det er en indgangskontrolleret sløjfe. I while-løkke evalueres en betingelse før behandling af en krop af løkken. Hvis en betingelse er sand, og kun derefter, udføres kroppen af en løkke. Efter at en loops brødtekst er udført, går kontrol igen tilbage i begyndelsen, og betingelsen kontrolleres, om den er sand, den samme proces udføres, indtil betingelsen bliver falsk. Når tilstanden bliver falsk, går kontrollen ud af løkken.
Efter at have forladt løkken, går kontrolelementet til sætningerne, som er umiddelbart efter løkken. Brødteksten i en løkke kan indeholde mere end én sætning. Hvis den kun indeholder én erklæring, er de krøllede seler ikke obligatoriske. Det er dog en god øvelse at bruge de krøllede seler, selvom vi har et enkelt statement i kroppen.
I while-løkke, hvis betingelsen ikke er sand, vil brødteksten af en løkke ikke blive udført, ikke engang én gang. Det er anderledes i do while loop, som vi snart vil se.
Følgende program illustrerer mens loop in C programmeringseksempel:
#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; }
Output:
1 2 3 4 5 6 7 8 9 10
Ovenstående program illustrerer brugen af while-løkke. I ovenstående program har vi printet talserier fra 1 til 10 ved hjælp af en while-løkke.
Mens Loop in C-programmering
- Vi har initialiseret en variabel kaldes num med værdien 1. Vi skal udskrive fra 1 til 10, derfor initialiseres variablen med værdien 1. Hvis du vil udskrive fra 0, skal du tildele værdien 0 under initialiseringen.
- I en while-løkke har vi givet en betingelse (num<=10), som betyder, at løkken vil udføre kroppen, indtil værdien af num bliver 10. Herefter vil løkken blive afsluttet, og kontrollen vil falde uden for løkken.
- I en løkkes krop har vi en printfunktion til at udskrive vores nummer og en stigningsoperation til at øge værdien pr. udførelse af en løkke. En begyndelsesværdi af num er 1, efter udførelsen bliver det 2, og under næste udførelse bliver det 3. Denne proces vil fortsætte indtil værdien bliver 10, og derefter vil den udskrive serien på konsollen og afslutte løkken .
'\n' bruges til formateringsformål, hvilket betyder, at værdien udskrives på en ny linje.
Do-While loop i C
En do...while-løkke i C ligner while-løkken, bortset fra at betingelsen altid udføres efter brødteksten i en loop. Det kaldes også en udgangskontrolleret sløjfe.
Syntaks for do while loop i C programmeringssprog er som følger:
Syntaks for Do-While Loop i C
do { statements } while (expression);
Som vi så i en while-løkke, udføres kroppen, hvis og kun hvis betingelsen er sand. I nogle tilfælde er vi nødt til at udføre en krop af løkken mindst én gang, selvom betingelsen er falsk. Denne type operation kan opnås ved at bruge en do-while loop.
I do-while-løkken udføres en loop altid mindst én gang. Efter at kroppen er henrettet, kontrollerer den tilstanden. Hvis betingelsen er sand, vil den igen udføre kroppen af en løkke, ellers overføres kontrol ud af løkken.
I lighed med while-løkken, når kontrollen går ud af løkken, er de sætninger, der er umiddelbart efter løkken er udført.
Den kritiske forskel mellem while og do-while loop er, at mens mens er skrevet i begyndelsen. I do-while loop skrives while-betingelsen i slutningen og afsluttes med et semikolon (;)
Følgende loop-program i C illustrerer arbejdet med en do-while loop:
Nedenfor er en do-while loop i C eksempel for at udskrive en tabel med nummer 2:
#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; }
Output:
2 4 6 8 10 12 14 16 18 20
I ovenstående eksempel har vi udskrevet multiplikationstabel med 2 ved hjælp af en do-while loop. Lad os se, hvordan programmet var i stand til at udskrive serien.
Do-While Loop i C-programmering
- Først har vi initialiseret en variabel 'num' med værdien 1. Derefter har vi skrevet en do-while loop.
- I en løkke har vi en printfunktion, der udskriver serien ved at gange værdien af num med 2.
- Efter hver stigning vil værdien af num stige med 1, og den vil blive udskrevet på skærmen.
- Indledningsvis er værdien af num 1. I en body af en loop vil printfunktionen blive udført på denne måde: 2*num hvor num=1, derefter 2*1=2, derfor vil værdien to blive udskrevet. Dette vil fortsætte, indtil værdien af num bliver 10. Herefter afsluttes løkken, og en sætning, som er umiddelbart efter løkken, vil blive udført. Returner i dette tilfælde 0.
Til sløjfe i C
A for loop er en mere effektiv loop struktur i 'C' programmering. Den generelle struktur af for loop syntaks i C er som følger:
Syntaks for For Loop i C
for (initial value; condition; incrementation or decrementation ) { statements; }
- Startværdien af for-løkken udføres kun én gang.
- Betingelsen er et boolsk udtryk, der tester og sammenligner tælleren med en fast værdi efter hver iteration, stopping for-løkken, når falsk returneres.
- Inkrementeringen/nedsættelsen øger (eller mindsker) tælleren med en indstillet værdi.
Følgende program illustrerer for loop in C programmeringseksemplet:
#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; }
Output:
1 2 3 4 5 6 7 8 9 10
Ovenstående program udskriver nummerserien fra 1-10 ved hjælp af for loop.
Til Loop in C-programmering
- Vi har deklareret en variabel af datatypen int til at gemme værdier.
- I for loop, i initialiseringsdelen, har vi tildelt værdien 1 til variabelnummeret. I tilstandsdelen har vi specificeret vores tilstand og derefter inkrementdelen.
- I brødteksten af en løkke har vi en printfunktion til at printe tallene på en ny linje i konsollen. Vi har værdien en gemt i antal, efter den første iteration vil værdien blive inkrementeret, og den bliver 2. Nu har variabeltallet værdien 2. Betingelsen vil blive kontrolleret igen, og da betingelsen er sand, vil løkke blive eksekveret, og den vil udskrive to på skærmen. Denne løkke vil blive ved med at udføre, indtil værdien af variablen bliver 10. Herefter afsluttes løkken, og en serie på 1-10 vil blive udskrevet på skærmen.
I C kan for-løkken have flere udtryk adskilt af kommaer i hver del.
For eksempel:
for (x = 0, y = num; x < y; i++, y--) { statements; }
Vi kan også springe det oprindelige værdiudtryk, betingelse og/eller stigning over ved at tilføje et semikolon.
For eksempel:
int i=0; int max = 10; for (; i < max; i++) { printf("%d\n", i); }
Bemærk, at løkker også kan indlejres, hvor der er en ydre løkke og en indre løkke. For hver iteration af den ydre løkke gentager den indre løkke hele sin cyklus.
Overvej følgende eksempel med flere betingelser i for loop, der bruger indlejret for loop i C-programmering til at udlæse en multiplikationstabel:
#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 */ }}
Output:
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
Indlejring af for-løkker kan udføres på ethvert niveau. De indlejrede løkker skal være tilstrækkeligt indrykket til at gøre koden læsbar. I nogle versioner af 'C' er indlejringen begrænset til op til 15 løkker, men nogle tilbyder flere.
De indlejrede loops bruges mest i array-applikationer, som vi vil se i yderligere tutorials.
Ud over de tre løkketyper tilbyder C to udsagn, der ændrer, hvordan en løkke kører indefra.
Pauseerklæring i C
Pausesætningen bruges hovedsageligt i skifte erklæringDet er også nyttigt til øjeblikkelig stopping en løkke.
Vi overvejer følgende program, som introducerer en pause for at afslutte en while-løkke:
#include <stdio.h> int main() { int num = 5; while (num > 0) { if (num == 3) break; printf("%d\n", num); num--; }}
Output:
5 4
Fortsæt erklæring i C
Når du vil springe til næste iteration, men forblive i løkken, skal du bruge continu-sætningen.
For eksempel:
#include <stdio.h> int main() { int nb = 7; while (nb > 0) { nb--; if (nb == 5) continue; printf("%d\n", nb); }}
Output:
6 4 3 2 1
Så værdien 5 springes over.
Hvilken sløjfe skal du vælge?
Valg af en loop er altid en svær opgave for en programmør, for at vælge en loop skal du udføre følgende trin:
- Analyser problemet og tjek, om det kræver en pre-test eller en post-test loop.
- Hvis en forudgående test er påkrævet, skal du bruge en while- eller for-løkke.
- Hvis eftertest er påkrævet, skal du bruge en do-while loop.




