C++ do...while loop med exempel

Vad är do-while loop?

Do-while loopen itererar en del av C++ program flera gånger. I do-while-loopen läggs testuttryck till längst ner i loopen. Slingkroppen kommer före testuttrycket. Det är därför loopkroppen måste köras en gång, även när testuttrycket utvärderas till falskt i det första testet.

När ska man använda en do-while loop?

Do-while-loopen bör användas när antalet iterationer inte är fixerat, och loopen måste köras minst en gång. De C++ kompilator exekverar loopkroppen först innan villkoret utvärderas. Det betyder att slingan måste returnera ett resultat. Detta är fallet även när testvillkoret utvärderas till ett falskt vid den första utvärderingen. Eftersom loopkroppen redan har körts måste den returnera resultatet.

syntax

Den grundläggande syntaxen för C++ do while loop är som följer:

do{    
//code 
}while(condition);  

Villkoret är testuttryck. Det måste vara sant för att loopen ska köras. { och } markerar texten för do while-slingan. Det kommer före tillståndet. Därför utförs det före villkoret.

Hur fungerar do-while loop?

Do-While Loop
C++ Gör medan Flödesschema

Flödesschema Förklaring:

  1. Start av do while loop.
  2. Kroppen av do while loop.
  3. Testuttrycket eller tillståndet som ska utvärderas.
  4. Om testuttrycket är sant, C++ kompilatorn körde do while-slingan.
  5. Om testuttrycket är falskt, C++ kompilatorn kör satserna efter loopkroppen.
  6. Uttalanden som kommer efter loopkroppen.

Exempelvis 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;
}

Produktion:

Do-While Loop

Här är en skärmdump av koden:

Do-While Loop

Kodförklaring:

  1. Inklusive iostream-huvudfilen i vår kod. Det gör att vi kan läsa från och skriva till konsolen.
  2. Inkluderar std-namnområdet för att använda dess klasser och funktioner utan att anropa det.
  3. Anropar funktionen main() där programmets logik ska läggas till. { markerar början på huvuddelen av funktionen main().
  4. En kommentar. De C++ kompilatorn hoppar över detta.
  5. Deklarera en heltalsvariabel x och tilldela den värdet 1.
  6. Skapa en do-while loop. { markerar början av loopkroppen.
  7. För att skriva ut värdet på variabel x tillsammans med annan text på konsolen. Änden är en C++ nyckelord som betyder slutrad.
  8. Ökar värdet på x med 1 efter varje iteration.
  9. Änden av slingkroppen. Testuttryck har lagts till i slutet av loopkroppen. Den testar om värdet på x är mindre än 5.
  10. Funktionen main() bör returnera ett värde om programmet fungerar bra.
  11. Slutet på huvuddelen av funktionen main().

Exempelvis 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;
}

Produktion:

Do-While Loop

Här är en skärmdump av koden:

Do-While Loop

Kodförklaring:

  1. Inklusive iostream-huvudfilen i vår kod. Det gör att vi kan läsa från och skriva till konsolen.
  2. Inkluderar std-namnområdet för att använda dess klasser och funktioner utan att anropa det.
  3. Anropar funktionen main() där programmets logik ska läggas till.
  4. { markerar början på huvuddelen av funktionen main().
  5. Deklarerar två heltalsvariabler, num och summa. Variabelsumman har initierats till 0.
  6. Skapa en do-while loop. { markerar början av loopkroppen.
  7. Skriver ut texten "Ange ett nummer:" på konsolen.
  8. Läser användarinmatning från konsolen och lagrar värdet i variabel num. cin (konsolingång) är en funktion som läser användarinmatning.
  9. Att lägga till värdet av num till värdet av summan och lagra resulterar i variabel summa.
  10. } markerar slutet av loopkroppen. Testuttrycket har lagts till i slutet av loopkroppen. Den testar om värdet som angetts av användaren för att säkerställa att det inte är 0. != är inte lika med operatorn. Om användaren anger en 0, bör slingan avslutas.
  11. Utskriftsvärde för variabel summa på konsolen tillsammans med annan text.
  12. Funktionen main() bör returnera ett värde om programmet fungerar bra.
  13. Slutet på huvuddelen av funktionen main().

Kapslad Do While Loop

In C++, är det möjligt för oss att skapa en do-while loop inuti en annan do-while loop. Detta resulterar i en kapslad do-while loop.

syntax

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

Den första do-satsen anger do-delen av den yttre do-while-loopen.

Den andra do-satsen betecknar do-delen av den inre do-while-loopen.

Den första while-satsen anger testvillkoret för den inre slingan.

Den andra while-satsen anger testvillkoret för den yttre slingan.

Hur kapslade gör medan loop fungerar

Kapslad do while loop fungerar enligt följande:

Steg 1: Initieringen utförs först och en gång.

Steg 2: Uttalandet (do) exekveras en gång.

Steg 3: Testuttryck är utvärdering genom flödeskontroll.

Steg 4: Om sant, exekveras inner loop.

Steg 5: Uppdaterande uttalanden uppdateras.

Steg 6: Processen körs upprepade gånger tills testuttrycket blir falskt.

Steg 7: När testuttrycket blir falskt, avslutas den inre slingan och kontrollen hoppar till den yttre slingan.

Steg 8: Testtillståndet utvärderas igen.

Steg 9: Om sant, exekveras påståenden för att returnera falskt.

Steg 10: Utförande av loop-stopp och kontrollhopp till satser efter loop.

Exempelvis

#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);
}

Produktion:

Kapslad Do While Loop

Här är en skärmdump av koden:

Kapslad Do While Loop

Kodförklaring:

  1. Inklusive iostream-huvudfilen i vår kod. Det gör att vi kan läsa från och skriva till konsolen.
  2. Inkluderar std-namnområdet för att använda dess klasser och funktioner utan att anropa det.
  3. Anropar funktionen main() där programmets logik ska läggas till. { markerar början på huvuddelen av funktionen main().
  4. Deklarera en heltalsvariabel a och tilldela den värdet 1.
  5. Skapar den yttre gör-under-slingan. { markerar början av den yttre öglans kropp.
  6. Deklarera en heltalsvariabel b och tilldela den värdet 1.
  7. Skapar den inre gör-under-slingan. { markerar början av den inre slingans kropp.
  8. För att skriva ut värdet för variabel a på konsolen. "\n" är ett nytt linjetecken som flyttar muspekaren till nästa rad.
  9. Ökar värdet på b med 1 efter varje iteration.
  10. Änden av den inre öglans kropp. Testuttryck har lagts till i slutet av loopkroppen. Den testar om värdet på b är mindre än eller lika med 5.
  11. Ökar värdet av a med 1 efter varje iteration.
  12. Änden av den yttre öglans kropp. Testuttryck har lagts till i slutet av loopkroppen. Den testar om värdet på a är mindre än eller lika med 3.
  13. Slutet på huvuddelen av funktionen main().

Sammanfattning

  • Do-while-loopen kör en kodsektion flera gånger.
  • Den ska användas när antalet iterationer inte är fast.
  • I do-while-loopen kommer loopkroppen före testuttrycket.
  • Slingkroppen körs minst en gång, även om testuttrycket blir falskt.
  • Denna loop bör användas när antalet iterationer inte är fixerat.
  • Do while loop kan köras hur många gånger som helst, förutsatt att villkoret är sant.
  • Tillståndet utvärderas en gång efter varje iteration.
  • Resultatet av utvärderingen av tillståndet avgör vilka åtgärder som ska vidtas.
  • Om villkoret är sant, utförde loopen kroppen.
  • Utförande av loop stoppar omedelbart, villkoret utvärderas till ett falskt.
  • Eftersom do while-looptexten redan har körts måste den returnera resultatet.

Dagligt Guru99-nyhetsbrev

Kickstarta dagen med de senaste och viktigaste AI-nyheterna som levereras just nu.