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: