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: