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 ++.
for
løkkewhile
løkkedo… while
løkke
I den foregående vejledning lærte vi om C ++ for loop. Her skal vi lære om while
og do… while
sløjfer.
C ++ mens Loop
Sløjfens syntaks while
er:
while (condition) ( // body of the loop )
Her,
- En
while
løkke evaluerercondition
- Hvis det
condition
evalueres tiltrue
,while
udføres koden inde i sløjfen. - Den
condition
evalueres igen. - Denne proces fortsætter, indtil den
condition
erfalse
. - Når
condition
evalueres 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 loopEksempel 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 while
lø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… while
løkke er en variant af while
løkken med en vigtig forskel: kroppen af do… while
løkken udføres én gang, før den condition
er markeret.
Dens syntaks er:
do ( // body of loop; ) while (condition);
Her,
- Sløjfens krop udføres først. Derefter
condition
evalueres den. - Hvis det
condition
vurderes tiltrue
,do
udføres sløjfens krop inde i udsagnet igen. - Den
condition
evalueres igen. - Hvis det
condition
vurderes tiltrue
,do
udføres sløjfens krop inde i udsagnet igen. - Denne proces fortsætter indtil
condition
evalueringen tilfalse
. Så stopper løkken.
Flowchart of do … while Loop
Flowchart of C ++ do… while loopEksempel 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 while
og do… while
slø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