Loops in C: For, While, Do While Looping Statements [Eksempler]

Hvad er Loop i C?

Looping-udsagn i C udfรธr sekvensen af โ€‹โ€‹udsagn mange gange, indtil den angivne betingelse bliver falsk. En lรธkke i C bestรฅr af to dele, en krop af en lรธkke og en kontrolsรฆtning. Kontrolsรฆtningen er en kombination af nogle betingelser, der leder lรธkkens krop til at udfรธres, indtil den angivne betingelse bliver falsk. Formรฅlet med C-lรธkken er at gentage den samme kode et antal gange.

Typer af lรธkker i C

Afhรฆngigt af positionen af โ€‹โ€‹en kontrolsรฆtning i et program, er looping-sรฆtning i C klassificeret i to typer:

1. Indgangskontrolleret slรธjfe

2. Afslut kontrolleret slรธjfe

I en indgangskontrolslรธjfe i C, en betingelse kontrolleres, fรธr kroppen af โ€‹โ€‹en loop udfรธres. Det kaldes ogsรฅ som en pre-checking loop.

I en forlade kontrolleret slรธjfe, kontrolleres en betingelse efter udfรธrelse af brรธdteksten i en lรธkke. Det kaldes ogsรฅ som en 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. Slรธjfen, der ikke stopper med at udfรธre og behandler sรฆtningerne et antal gange, kaldes en uendelig lรธkke. En uendelig lรธkke kaldes ogsรฅ en "Endelรธs slรธjfe." Fรธlgende er nogle karakteristika ved en uendelig slรธjfe:

1. Der er ikke angivet nogen opsigelsesbetingelser.

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. Gรธr-mens-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 den indledende vรฆrdi kun รฉn gang, hvorefter tilstanden tester og sammenligner tรฆlleren med en fast vรฆrdi efter hver iteration, hvilket stopper for-lรธkken, nรฅr false returneres.

Mens Loop in C

A while loop er den mest ligetil looping struktur. Mens loop syntaks i C programmeringssprog 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 kaldet num med vรฆrdi 1. Vi skal udskrive fra 1 til 10, derfor initialiseres variablen med vรฆrdi 1. Hvis du vil udskrive fra 0, sรฅ tildel vรฆrdien 0 under initialisering.
  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 vil blive udskrevet 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;
}
  • 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, og stopper 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 slรธjfe i C
Til Loop in C-programmering
  1. Vi har erklรฆret en variabel af en int-datatype 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 loops kan udfรธres op til ethvert niveau. De indlejrede slรธjfer skal vรฆre tilstrรฆkkeligt indrykket for at gรธre koden lรฆsbar. I nogle versioner af 'C' er indlejringen begrรฆnset til 15 slรธjfer, men nogle giver flere.

De indlejrede loops bruges mest i array-applikationer, som vi vil se i yderligere tutorials.

Pauseerklรฆring i C

Pausesรฆtningen bruges hovedsageligt i skifte erklรฆring. Det er ogsรฅ nyttigt til รธjeblikkeligt at stoppe 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 prรฆtest er pรฅkrรฆvet, brug et stykke tid eller til en lรธkke.
  • Hvis eftertest er pรฅkrรฆvet, skal du bruge en do-while loop.

Resumรฉ

  • Definer loop i C: En Loop er et af nรธglebegreberne pรฅ enhver Programmeringssprog. Slรธjfer i C-sprog implementeres ved hjรฆlp af betingede udsagn.
  • En blok af slรธjfekontroludsagn i C udfรธres et antal gange, indtil betingelsen bliver falsk.
  • Slรธjfer i C-programmering er af 2 typer: indgangskontrollerede og udgangskontrollerede.
  • Liste forskellige loop kontrol instruktioner i C: C programmering giver os 1) mens 2) do-while og 3) for loop kontrol instruktioner.
  • For og mens loop C-programmering er indgangskontrollerede loops i C-sprog.
  • Do-while er en udgangskontrollรธkke i C.

Opsummer dette indlรฆg med: