C++ do...while loop med exempel

⚡ Smart sammanfattning

En do-while-loop i C++ kör ett kodblock en gång och upprepar det sedan så länge ett villkor förblir sant. Här får du lära dig hur do-while-loopen fungerar, dess syntax, när den ska användas och exempel.

  • 🔂 Vad det är: En do-while-loop kör sin kropp en gång och upprepas sedan medan ett villkor är sant.
  • Körs först: Kroppen utför alltid minst en gång innan tillståndet kontrolleras.
  • 🧾 Syntax: do { statements } while(villkor); avslutas med ett semikolon.
  • 🎯 När du ska använda: Använd den när koden måste köras minst en gång, till exempel i menyer.
  • 🤖 AI-hjälp: AI-verktyg som GitHub Copilot skriver och felsöker C++ loopar direkt.

C++ Do-While Loop

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

Code Fö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

Code Fö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

Code Fö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().

Vanliga frågor

En do-while-loop är en kontrollstruktur som kör sin kropp en gång och sedan upprepar den så länge ett villkor är sant. Villkoret kontrolleras efter varje genomgång, inte innan.

En while-loop kontrollerar villkoret innan dess kropp körs, så den kan köras noll gånger. En do-while-loop kör kroppen först och kontrollerar villkoret efteråt, så den körs alltid minst en gång.

Syntaxen är do { statements } while(condition);. Kroppen inom klammerparenteser körs först, sedan testas villkoret inom parentes och loopen avslutas med ett semikolon.

Använd en do-while-loop när koden måste köras minst en gång oavsett villkor, till exempel att visa en meny eller validera användarinmatning.

En kapslad do-while-loop är en do-while-loop placerad inuti en annan do-while-loop. Den inre loopen fullbordar alla sina passeringar för varje enskilt passerande av den yttre loopen.

AI-assistenter som GitHub Copilot genererar do-while-loopar från en kommentar, konverterar mellan looptyper och flaggar villkor som kan orsaka en oändlig loop.

Ja. AI-drivna verktyg upptäcker oändliga loopar, felaktiga sekvenser och felaktiga loopförhållanden, och föreslår tydligare looplogik.ping ditt C++ koden körs korrekt.

Ja. Eftersom villkoret kontrolleras efter kroppen, exekverar en do-while-loop alltid sin kropp minst en gång, även om villkoret är falskt vid den första kontrollen.

Sammanfatta detta inlägg med: