C++ do...while loop med eksempler

Hvad er do-while loop?

Do-while-løkken gentager en sektion af C++ program flere gange. I do-while-løkken tilføjes testudtryk i bunden af ​​løkken. Løkkelegemet kommer før testudtrykket. Det er derfor, at loop-kroppen skal udføres for en gangs skyld, selv når testudtrykket evalueres til falsk i den første test.

Hvornår skal man bruge en do-while loop?

Do-while-løkken skal bruges, når antallet af iterationer ikke er fast, og løkken skal køre mindst én gang. Det C++ compiler udfører løkketeksten først, før betingelsen evalueres. Det betyder, at løkken skal returnere et resultat. Dette er tilfældet, selv når testbetingelsen evalueres til en falsk ved den første evaluering. Da loop-legemet allerede er udført, skal det returnere resultatet.

Syntaks

Den grundlæggende syntaks af C++ gør mens loop er som følger:

do{    
//code 
}while(condition);  

Betingelsen er testekspression. Det skal være sandt for at løkken kan udføres. { og } markerer brødteksten i do while-løkken. Det kommer før tilstanden. Derfor udføres det før betingelsen.

Hvordan fungerer do-while loop?

Do-While Loop
C++ Gør mens Flowdiagram

Forklaring af rutediagram:

  1. Start af do while loop.
  2. Kroppen af ​​do while loop.
  3. Testudtrykket eller betingelsen, der skal evalueres.
  4. Hvis testudtrykket er sandt, vil C++ compiler udførte brødteksten af ​​do while-løkken.
  5. Hvis testudtrykket er falsk, vil C++ compiler udfører sætningerne efter loop body.
  6. Udsagn, der kommer efter loop body.

Eksempel 1

#include <iostream>
using namespace std;
int main() {
	// Local variable 
	int x = 1;
	do {
		cout << "X is: " << x << endl;
		x = x + 1;
	} while (x < 5);
	return 0;
}

Output:

Do-While Loop

Her er et skærmbillede af koden:

Do-While Loop

Kodeforklaring:

  1. Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
  2. Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
  3. Kalder main()-funktionen, hvori programmets logik skal tilføjes. { markerer starten af ​​brødteksten af ​​main()-funktionen.
  4. En kommentar. De C++ compiler vil springe dette over.
  5. Erklære en heltalsvariabel x og tildele den en værdi på 1.
  6. Oprettelse af en do-while loop. { markerer starten af ​​løkketeksten.
  7. For at udskrive værdien af ​​variabel x sammen med anden tekst på konsollen. Endl er en C++ søgeord betyder slutlinje.
  8. Forøgelse af værdien af ​​x med 1 efter hver iteration.
  9. Enden af ​​løkkens krop. Testudtryk er blevet tilføjet til slutningen af ​​løkkelegemet. Den tester, om værdien af ​​x er mindre end 5.
  10. Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
  11. Slutningen af ​​hoveddelen af ​​funktionen main().

Eksempel 2

#include <iostream>
using namespace std;
int main()
{
	int num, sum = 0;
	do {

		cout << "Enter a number: ";

		cin >> num;

		sum += num;

	} while (num != 0);
	cout << "Sum is " << sum;

	return 0;
}

Output:

Do-While Loop

Her er et skærmbillede af koden:

Do-While Loop

Kodeforklaring:

  1. Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
  2. Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
  3. Kalder main()-funktionen, hvori programmets logik skal tilføjes.
  4. { markerer starten af ​​brødteksten af ​​funktionen main().
  5. Erklærer to heltalsvariable, num og sum. Den variable sum er blevet initialiseret til 0.
  6. Oprettelse af en do-while loop. { markerer starten af ​​løkketeksten.
  7. Udskrivning af teksten "Indtast et nummer:" på konsollen.
  8. Læser brugerinput fra konsollen og gemmer værdien i variabelt antal. cin (konsolindgang) er en funktion, der læser brugerinput.
  9. Tilføjelse af værdien af ​​num til værdien af ​​sum og lagring resulterer i variabel sum.
  10. } markerer slutningen af ​​løkkens krop. Testudtrykket er blevet tilføjet til slutningen af ​​løkkelegemet. Den tester, om værdien indtastet af brugeren for at sikre, at den ikke er 0. != er ikke lig med operatoren. Hvis brugeren indtaster et 0, bør løkken afsluttes.
  11. Udskrivningsværdi af variabel sum på konsollen sammen med anden tekst.
  12. Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
  13. Slutningen af ​​hoveddelen af ​​funktionen main().

Nested Do While Loop

In C++, er det muligt for os at oprette en gør-mens-løkke inde i en anden gør-hel-løkke. Dette resulterer i en indlejret do-while-løkke.

Syntaks

do{
statement(s)
do{
statement(s)
}while(condition);
statement(s)
}while(condition);

Den første do-sætning angiver do-delen af ​​den ydre do-while-løkke.

Den anden do-sætning angiver do-delen af ​​den indre do-while-løkke.

Den første while-sætning angiver testbetingelsen for den indre sløjfe.

Den anden while-sætning angiver testbetingelsen for den ydre sløjfe.

Hvordan indlejret gør, mens løkken fungerer

Nested do while loop fungerer som følger:

Trin 1: Initialiseringen udføres først og én gang.

Trin 2: Udsagn (the do) udføres én gang.

Trin 3: Testudtryk er evaluering ved flowkontrol.

Trin 4: Hvis det er sandt, udføres den indre løkke.

Trin 5: Opdatering(er) er opdateret.

Trin 6: Processen kører gentagne gange, indtil testudtrykket bliver falsk.

Trin 7: Når testudtrykket bliver falsk, forlades den indre sløjfe, og kontrollen hopper til den ydre sløjfe.

Trin 8: Testtilstanden evalueres igen.

Trin 9: Hvis det er sandt, udføres sætning(er) for at returnere falsk.

Trin 10: Udførelse af løkkestop og kontrolspring til sætninger efter løkke.

Eksempel

#include <iostream>  
using namespace std;
int main() {
	int a = 1;
	do {
		int b = 1;
		do {
			cout << a << "\n";
			b++;
		} while (b <= 3);
		a++;
	} while (a <= 3);
}

Output:

Nested Do While Loop

Her er et skærmbillede af koden:

Nested Do While Loop

Kodeforklaring:

  1. Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
  2. Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
  3. Kalder main()-funktionen, hvori programmets logik skal tilføjes. { markerer starten af ​​brødteksten af ​​main()-funktionen.
  4. Erklære en heltalsvariabel a og tildele den en værdi på 1.
  5. Oprettelse af den ydre gør-mens-løkke. { markerer starten af ​​den ydre løkkes krop.
  6. Erklærer en heltalsvariabel b og tildeler den værdien 1.
  7. Oprettelse af den indre gør-mens-løkke. { markerer starten af ​​indre løkkelegeme.
  8. For at udskrive værdien af ​​variabel a på konsollen. "\n" er et nyt linjetegn, der flytter musemarkøren til næste linje.
  9. Øger værdien af ​​b med 1 efter hver iteration.
  10. Enden af ​​den indre løkkelegeme. Testudtryk er blevet tilføjet til slutningen af ​​løkkelegemet. Den tester, om værdien af ​​b er mindre end eller lig med 5.
  11. Stigende værdi af a med 1 efter hver iteration.
  12. Enden af ​​den ydre løkkelegeme. Testudtryk er blevet tilføjet til slutningen af ​​løkkelegemet. Den tester, om værdien af ​​a er mindre end eller lig med 3.
  13. Slutningen af ​​hoveddelen af ​​funktionen main().

Resumé

  • Do-while-løkken kører en sektion af kode flere gange.
  • Den skal bruges, når antallet af iterationer ikke er fast.
  • I do-while-løkken kommer loop-kroppen før testudtryk.
  • Løkketeksten udføres mindst én gang, selvom testudtrykket bliver falsk.
  • Denne løkke skal bruges, når antallet af iterationer ikke er fast.
  • Do while loop kan køre et vilkårligt antal gange, forudsat at betingelsen er sand.
  • Tilstanden evalueres én gang efter hver iteration.
  • Resultatet af evalueringen af ​​tilstanden bestemmer, hvilken handling der skal tages.
  • Hvis betingelsen er sand, udførte løkken kroppen.
  • Udførelse af sløjfe stopper øjeblikkeligt, tilstanden evalueres til en falsk.
  • Da do while-løkketeksten allerede er blevet udført, skal den returnere resultatet.