V tomto tutoriálu se pomocí několika příkladů naučíme použití while a do … while smyček v programování v C ++.
V počítačovém programování se smyčky používají k opakování bloku kódu.
Řekněme například, že chceme zobrazit zprávu stokrát. Pak namísto stokrát psaného tiskového prohlášení můžeme použít smyčku.
To byl jen jednoduchý příklad; efektivnějším využíváním smyček můžeme v našich programech dosáhnout mnohem větší efektivity a propracovanosti.
V C ++ existují 3 typy smyček.
forsmyčkawhilesmyčkado… whilesmyčka
V předchozím kurzu jsme se dozvěděli o smyčce C ++ pro. Zde se budeme učit whilea do… whilesmyčky.
C ++ while Loop
Syntaxe whilesmyčky je:
while (condition) ( // body of the loop )
Tady,
whileSmyčka hodnotícondition- Pokud se
conditionvyhodnotítrue, provede se kód uvnitřwhilesmyčky. conditionJe opět vyhodnocen.- Tento proces pokračuje, dokud
conditionnenífalse. - Když se
conditionvyhodnotífalse, smyčka se ukončí.
Další informace o tomto tématu conditionsnajdete v relačních a logických operátorech C ++.
Vývojový diagram while Loop
Vývojový diagram smyčky C ++ while
Příklad 1: Zobrazení čísel 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; )
Výstup
1 2 3 4 5
Program funguje takto.
| Opakování | Variabilní | i <= 5 | Akce |
|---|---|---|---|
| 1. místo | i = 1 | true | 1 je vytištěn a ije zvýšen na 2. |
| 2. místo | i = 2 | true | 2 je vytištěn a ije zvýšen na 3. |
| 3. místo | i = 3 | true | 3 je vytištěn a ije zvýšen na4 |
| 4. místo | i = 4 | true | 4 je vytištěn a ije zvýšen na 5. |
| 5 | i = 5 | true | 5 je vytištěn a ije zvýšen na 6. |
| 6. | i = 6 | false | Smyčka je ukončena |
Příklad 2: Součet pouze kladných čísel
// 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; )
Výstup
Zadejte číslo: 6 Zadejte číslo: 12 Zadejte číslo: 7 Zadejte číslo: 0 Zadejte číslo: -2 Součet je 25
V tomto programu je uživatel vyzván k zadání čísla, které je uloženo v proměnné číslo.
Abychom mohli uložit součet čísel, deklarujeme proměnný součet a inicializujeme jej na hodnotu 0.
whileSmyčka pokračuje, dokud uživatel zadá číslo negativní. Během každé iterace je číslo zadané uživatelem přidáno do proměnné součet.
Když uživatel zadá záporné číslo, smyčka se ukončí. Nakonec se zobrazí celková částka.
C ++ dělat … zatímco Loop
do… whileSmyčka je varianta whilesmyčku s jedním důležitým rozdílem: tělo do… whilesmyčky je proveden jednou před tím, než conditionse kontroluje.
Jeho syntaxe je:
do ( // body of loop; ) while (condition);
Tady,
- Nejprve se provede tělo smyčky. Poté
conditionse vyhodnotí. - Pokud se
conditionvyhodnotítrue, tělo smyčky uvnitřdopříkazu se provede znovu. conditionJe hodnocena ještě jednou.- Pokud se
conditionvyhodnotítrue, tělo smyčky uvnitřdopříkazu se provede znovu. - Tento proces pokračuje, dokud se
conditionvyhodnotífalse. Poté se smyčka zastaví.
Vývojový diagram úkolů … zatímco Loop
Vývojový diagram C ++ smyčky… while
Příklad 3: Zobrazení čísel 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; )
Výstup
1 2 3 4 5
Program funguje takto.
| Opakování | Variabilní | i <= 5 | Akce |
|---|---|---|---|
i = 1 | nezaškrtnuto | 1 se vytiskne a izvýší se na 2 |
|
| 1. místo | i = 2 | true | 2 se vytiskne a izvýší se na 3 |
| 2. místo | i = 3 | true | 3 se vytiskne a izvýší se na 4 |
| 3. místo | i = 4 | true | 4 se vytiskne a izvýší se na 5 |
| 4. místo | i = 5 | true | 5 se vytiskne a izvýší se na 6 |
| 5 | i = 6 | false | Smyčka je ukončena |
Příklad 4: Součet pouze kladných čísel
// 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; )
Výstup 1
Zadejte číslo: 6 Zadejte číslo: 12 Zadejte číslo: 7 Zadejte číslo: 0 Zadejte číslo: -2 Součet 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.
Nicméně, whilea do… whilesmyčky jsou obvykle používány, když je počet iterací je neznámá. Například,
while (condition) ( // body of the loop )
Podívejte se na tyto příklady a dozvíte se více:
- Program C ++ pro zobrazení řady Fibonacci
- Program C ++ k vyhledání GCD
- Program C ++ k vyhledání LCM








