I denne vejledning lærer vi brugen af while and do … while loops i C ++ programmering ved hjælp af nogle eksempler.
I computerprogrammering bruges sløjfer til at gentage en blok kode.
Lad os for eksempel sige, at vi vil vise en besked 100 gange. Så i stedet for at skrive udskriftserklæringen 100 gange, kan vi bruge en løkke.
Det var bare et simpelt eksempel; vi kan opnå meget mere effektivitet og sofistikering i vores programmer ved at bruge sløjfer effektivt.
Der er 3 typer sløjfer i C ++.
forløkkewhileløkkedo… whileløkke
I den foregående vejledning lærte vi om C ++ for loop. Her skal vi lære om whileog do… whilesløjfer.
C ++ mens Loop
Sløjfens syntaks whileer:
while (condition) ( // body of the loop )
Her,
- En
whileløkke evaluerercondition - Hvis det
conditionevalueres tiltrue,whileudføres koden inde i sløjfen. - Den
conditionevalueres igen. - Denne proces fortsætter, indtil den
conditionerfalse. - Når
conditionevalueres tilfalse, slutter sløjfen.
For at lære mere om dette conditions, besøg C ++ Relational and Logical Operators.
Flowchart af mens Loop
Flowchart of C ++ while loop
Eksempel 1: Vis numre fra 1 til 5
// C++ Program to print numbers from 1 to 5 #include using namespace std; int main() ( int i = 1; // while loop from 1 to 5 while (i <= 5) ( cout << i << " "; ++i; ) return 0; )
Produktion
1 2 3 4 5
Sådan fungerer programmet.
| Iteration | Variabel | jeg <= 5 | Handling |
|---|---|---|---|
| 1. | i = 1 | true | 1 udskrives og iøges til 2. |
| 2. plads | i = 2 | true | 2 udskrives og iøges til 3. |
| 3. | i = 3 | true | 3 udskrives og iøges til4 |
| 4. plads | i = 4 | true | 4 udskrives og iøges til 5. |
| 5. plads | i = 5 | true | 5 udskrives og iøges til 6. |
| 6. | i = 6 | false | Sløjfen er afsluttet |
Eksempel 2: Kun summen af positive tal
// program to find the sum of positive numbers // if the user enters a negative number, the loop ends // the negative number entered is not added to the sum #include using namespace std; int main() ( int number; int sum = 0; // take input from the user cout <> number; while (number>= 0) ( // add all positive numbers sum += number; // take input again if the number is positive cout <> number; ) // display the sum cout << "The sum is " << sum << endl; return 0; )
Produktion
Indtast et nummer: 6 Indtast et nummer: 12 Indtast et nummer: 7 Indtast et nummer: 0 Indtast et nummer: -2 Summen er 25
I dette program bliver brugeren bedt om at indtaste et nummer, der er gemt i det variable nummer.
For at gemme summen af numrene erklærer vi en variabel sum og initialiserer den til værdien af 0.
Den whileløkke fortsætter, indtil brugeren indtaster et negativt tal. Under hver iteration føjes det antal, der er indtastet af brugeren, til sumvariablen.
Når brugeren indtaster et negativt tal, afsluttes sløjfen. Endelig vises den samlede sum.
C ++ gør… mens Loop
Den do… whileløkke er en variant af whileløkken med en vigtig forskel: kroppen af do… whileløkken udføres én gang, før den conditioner markeret.
Dens syntaks er:
do ( // body of loop; ) while (condition);
Her,
- Sløjfens krop udføres først. Derefter
conditionevalueres den. - Hvis det
conditionvurderes tiltrue,doudføres sløjfens krop inde i udsagnet igen. - Den
conditionevalueres igen. - Hvis det
conditionvurderes tiltrue,doudføres sløjfens krop inde i udsagnet igen. - Denne proces fortsætter indtil
conditionevalueringen tilfalse. Så stopper løkken.
Flowchart of do … while Loop
Flowchart of C ++ do… while loop
Eksempel 3: Vis numre fra 1 til 5
// C++ Program to print numbers from 1 to 5 #include using namespace std; int main() ( int i = 1; // do… while loop from 1 to 5 do ( cout << i << " "; ++i; ) while (i <= 5); return 0; )
Produktion
1 2 3 4 5
Sådan fungerer programmet.
| Iteration | Variabel | jeg <= 5 | Handling |
|---|---|---|---|
i = 1 | ikke markeret | 1 udskrives og iøges til 2 |
|
| 1. | i = 2 | true | 2 udskrives og iøges til 3 |
| 2. plads | i = 3 | true | 3 udskrives og iøges til 4 |
| 3. | i = 4 | true | 4 udskrives og iøges til 5 |
| 4. plads | i = 5 | true | 5 udskrives og iøges til 6 |
| 5. plads | i = 6 | false | Sløjfen er afsluttet |
Eksempel 4: Kun summen af positive tal
// program to find the sum of positive numbers // If the user enters a negative number, the loop ends // the negative number entered is not added to the sum #include using namespace std; int main() ( int number = 0; int sum = 0; do ( sum += number; // take input from the user cout <> number; ) while (number>= 0); // display the sum cout << "The sum is " << sum << endl; return 0; )
Udgang 1
Indtast et nummer: 6 Indtast et nummer: 12 Indtast et nummer: 7 Indtast et nummer: 0 Indtast et nummer: -2 Summen er 25
Here, the do… while loop continues until the user enters a negative number. When the number is negative, the loop terminates; the negative number is not added to the sum variable.
Output 2
Enter a number: -6 The sum is 0.
The body of the do… while loop runs only once if the user enters a negative number.
Infinite while loop
If the condition of a loop is always true, the loop runs for infinite times (until the memory is full). For example,
// infinite while loop while(true) ( // body of the loop )
Here is an example of an infinite do… while loop.
// infinite do… while loop int count = 1; do ( // body of loop ) while(count == 1);
In the above programs, the condition is always true. Hence, the loop body will run for infinite times.
for vs while loops
A for loop is usually used when the number of iterations is known. For example,
// This loop is iterated 5 times for (int i = 1; i <=5; ++i) ( // body of the loop )
Here, we know that the for-loop will be executed 5 times.
Imidlertid whileog do… whilesløjfer anvendes sædvanligvis, når antallet af iterationer er ukendt. For eksempel,
while (condition) ( // body of the loop )
Se disse eksempler for at lære mere:
- C ++ - program til visning af Fibonacci-serien
- C ++ - program til at finde GCD
- C ++ - program til at finde LCM








