V tej vadnici se bomo s pomočjo nekaterih primerov naučili uporabe zank while in do … while v programiranju na C ++.
Pri računalniškem programiranju se zanke uporabljajo za ponovitev bloka kode.
Recimo na primer, da želimo sporočilo prikazati 100-krat. Nato lahko namesto pisanja izjave 100-krat napišemo zanko.
To je bil le preprost primer; z učinkovito uporabo zank lahko dosežemo veliko večjo učinkovitost in prefinjenost naših programov.
V jeziku C ++ obstajajo 3 vrste zank.
for
zankowhile
zankodo… while
zanko
V prejšnji vadnici smo spoznali zanko C ++ for. Tu se bomo naučili while
in do… while
zanke.
C ++, medtem ko Loop
Sintaksa while
zanke je:
while (condition) ( // body of the loop )
Tukaj,
while
Zanka ovrednoticondition
- Če
condition
oceni natrue
, se izvede koda znotrajwhile
zanke. - Ponovno
condition
se oceni. - Ta postopek se nadaljuje, dokler
condition
nifalse
. - Ko
condition
oceni nafalse
, se zanka konča.
Če želite izvedeti več o tem conditions
, obiščite relacijski in logični operaterji C ++.
Diagram poteka zanke while
Diagram poteka zanke C ++ whilePrimer 1: Prikaži številke od 1 do 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; )
Izhod
1 2 3 4 5
Tukaj je, kako program deluje.
Ponavljanje | Spremenljiv | i <= 5 | Ukrepanje |
---|---|---|---|
1. | i = 1 | true | 1 se natisne in i poveča na 2 . |
2. | i = 2 | true | 2 se natisne in i poveča na 3 . |
3. | i = 3 | true | 3 se natisne in i poveča na4 |
4. | i = 4 | true | 4 se natisne in i poveča na 5 . |
5. | i = 5 | true | 5 se natisne in i poveča na 6 . |
6. | i = 6 | false | Zanka je prekinjena |
Primer 2: Vsota samo pozitivnih števil
// 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; )
Izhod
Vnesite številko: 6 Vnesite številko: 12 Vnesite številko: 7 Vnesite številko: 0 Vnesite številko: -2 Vsota je 25
V tem programu je uporabnik pozvan, da vnese številko, ki je shranjena v spremenljivki številka.
Da bi shranili vsoto števil, razglasimo spremenljivko vsota in jo inicializiramo na vrednost 0
.
while
Zanka se nadaljuje, dokler uporabnik ne vnese z negativnim predznakom. Med vsako ponovitvijo se številki, ki jo vnese uporabnik, doda spremenljivka vsote.
Ko uporabnik vnese negativno število, se zanka konča. Na koncu se prikaže skupna vsota.
C ++ do… medtem ko Loop
do… while
Zanka je varianta while
zanke z eno pomembno razliko: telo do… while
zanke izvede enkrat, preden condition
se preveri.
Njegova sintaksa je:
do ( // body of loop; ) while (condition);
Tukaj,
- Telo zanke se najprej izvede. Nato
condition
se ovrednoti. - Če
condition
oceni natrue
, se telo zanke znotrajdo
stavka znova izvede. - Ponovno
condition
se oceni. - Če
condition
oceni natrue
, se telo zanke znotrajdo
stavka znova izvede. - Ta postopek se nadaljuje, dokler ne
condition
oceni dofalse
. Nato se zanka ustavi.
Diagram poteka do … while Loop
Diagram poteka v zanki C ++ do… whilePrimer 3: Prikaz številk od 1 do 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; )
Izhod
1 2 3 4 5
Tukaj je, kako program deluje.
Ponavljanje | Spremenljiv | i <= 5 | Ukrepanje |
---|---|---|---|
i = 1 | ni preverjeno | 1 se natisne in i poveča na 2 |
|
1. | i = 2 | true | 2 se natisne in i poveča na 3 |
2. | i = 3 | true | 3 se natisne in i poveča na 4 |
3. | i = 4 | true | 4 se natisne in i poveča na 5 |
4. | i = 5 | true | 5 se natisne in i poveča na 6 |
5. | i = 6 | false | Zanka je prekinjena |
Primer 4: Vsota samo pozitivnih števil
// 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; )
Izhod 1
Vnesite številko: 6 Vnesite številko: 12 Vnesite številko: 7 Vnesite številko: 0 Vnesite številko: -2 Vsota je 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.
Vendar, while
in do… while
zanke se običajno uporablja, ko je število iteracij neznano. Na primer
while (condition) ( // body of the loop )
Oglejte si te primere, če želite izvedeti več:
- Program C ++ za prikaz Fibonaccijevih serij
- Program C ++ za iskanje GCD
- Program C ++ za iskanje LCM