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.

  • 🔁 Løkkeanatomi: Hver C-løkke parrer en mængde gentagne udsagn med en kontrolbetingelse, der bestemmer, hvornår gentagelsen stopper.
  • 🚪 Indgang vs. udgang: Indgangsstyrede while- og for-løkker tester betingelsen først, mens det exit-styrede do-while-løkke altid kører sin krop én gang.
  • ♻️ Mens loop: While-løkken kontrollerer sin tilstand før hvert gennemløb, hvilket er velegnet til tilfælde, hvor antallet af iterationer ikke er kendt på forhånd.
  • 🔂 Do-while-løkke: Do-while-løkken udfører kroppen før test, så den garanterer en enkelt kørsel, selv når betingelsen er falsk.
  • 🔢 Til løkke: For-løkken pakker initialisering, betingelse og opdatering på én linje, ideel til at tælle gennem et fast område.
  • ⛔ Pause og fortsæt: `break`-sætningen afslutter en løkke med det samme, mens `continue` springer til den næste iteration uden at forlade løkken.

Loops i C: For, While, Do While looping Erklæringer

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:

  1. Indgangsstyret sløjfe
  2. 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.

Typer af løkker i C

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:

  1. Der er ikke angivet nogen opsigelsesbetingelse.
  2. 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:

  1. While-løkken
  2. Do-while-løkken
  3. 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

Mens Loop in C-programmering

  1. 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.
  2. 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.
  3. 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

Do-While Loop i C-programmering

  1. Først har vi initialiseret en variabel 'num' med værdien 1. Derefter har vi skrevet en do-while loop.
  2. I en løkke har vi en printfunktion, der udskriver serien ved at gange værdien af ​​num med 2.
  3. Efter hver stigning vil værdien af ​​num stige med 1, og den vil blive udskrevet på skærmen.
  4. 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;
}
  1. Startværdien af ​​for-løkken udføres kun én gang.
  2. 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.
  3. 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 sløjfe i C

Til Loop in C-programmering

  1. Vi har deklareret en variabel af datatypen int til at gemme værdier.
  2. I for loop, i initialiseringsdelen, har vi tildelt værdien 1 til variabelnummeret. I tilstandsdelen har vi specificeret vores tilstand og derefter inkrementdelen.
  3. 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:

  1. Analyser problemet og tjek, om det kræver en pre-test eller en post-test loop.
  2. Hvis en forudgående test er påkrævet, skal du bruge en while- eller for-løkke.
  3. Hvis eftertest er påkrævet, skal du bruge en do-while loop.

Ofte Stillede Spørgsmål

En uendelig løkke kører for evigt, når dens betingelse aldrig bliver falsk. Forebyg det ved at opdatere løkkevariablen i kroppen og sørge for, at betingelsen til sidst kan opfyldes, eller tilføj en break-sætning som en sikkerhedsforanstaltning.

"break"-sætningen stopper en løkke helt og flytter kontrollen til den første sætning efter den. "continue"-sætningen springer kun de resterende sætninger i den aktuelle iteration over og hopper til løkkens næste cyklus.

Standard C har ingen indbygget for-each- eller områdebaseret løkke som C++ or PythonDu itererer et array manuelt med en for- eller while-løkke ved hjælp af et indeks eller en pointer, der gennemgår hvert element.

Nej. goto-sætningen udfører et ubetinget hop til en markeret linje og kan imitere looping, men det er ikke et struktureret loop. Brug af for, while eller do-while holder koden langt mere læsbar.

Kommaoperatoren lader et for-løkke håndtere flere variabler på én gang. I for (x = 0, y = n; x < y; x++, y–) kører både initialiserings- og opdateringssektionen to udtryk i hver gennemgang.

Ja. Kombinér betingelser med de logiske AND (&&) og OR (||) operatorer i parenteserne. For eksempel, while (a < 10 && b > 0) holder looping kun så længe begge betingelser er opfyldt.

Ja. AI-kodningsassistenter kan udarbejde while-, do-while- og for-løkker ud fra en almindelig beskrivelse, finde fejl efter hinanden og markere tilstande, der kan vare evigt. RevDet er fortsat vigtigt at se outputtet, fordi den genererede logik ikke altid er korrekt.

GitHub Copilot foreslår komplette loop-tekster, mens du skriver, autofuldfører tællere og betingelser og foreslår indbyggede loop-mønstre fra en kort kommentar. Det fungerer i populære editorer og fremskynder gentagen C-kodning.

Opsummer dette indlæg med: