В този урок ще научим как да използваме while и do … while циклите в програмирането на C ++ с помощта на някои примери.
При компютърното програмиране циклите се използват за повтаряне на блок от код.
Да приемем например, че искаме да покажем съобщение 100 пъти. След това вместо да напишем изявлението за печат 100 пъти, можем да използваме цикъл.
Това беше само прост пример; можем да постигнем много по-голяма ефективност и изтънченост в нашите програми, като използваме ефективно цикли.
В C ++ има 3 вида цикли.
for
цикълwhile
цикълdo… while
цикъл
В предишния урок научихме за цикъла C ++ for. Тук ще научим за while
и do… while
цикли.
C ++ докато Loop
Синтаксисът на while
цикъла е:
while (condition) ( // body of the loop )
Тук,
- А
while
контур оценяваcondition
- Ако
condition
оценява наtrue
, кодът вwhile
цикъла се изпълнява. - The
condition
се оценява отново. - Този процес продължава, докато не
condition
еfalse
. - Когато
condition
оценява наfalse
, цикълът се прекратява.
За да научите повече за conditions
, посетете C ++ Релационни и логически оператори.
Блок-схема на цикъл while
Блок-схема на цикъл C ++ whileПример 1: Показване на числа от 1 до 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; )
Изход
1 2 3 4 5
Ето как работи програмата.
Повторение | Променлива | i <= 5 | Действие |
---|---|---|---|
1-ви | i = 1 | true | 1 се отпечатва и i се увеличава до 2 . |
2-ри | i = 2 | true | 2 се отпечатва и i се увеличава до 3 . |
3-ти | i = 3 | true | 3 се отпечатва и i се увеличава до4 |
4-ти | i = 4 | true | 4 се отпечатва и i се увеличава до 5 . |
5-ти | i = 5 | true | 5 се отпечатва и i се увеличава до 6 . |
6-то | i = 6 | false | Цикълът е прекратен |
Пример 2: Сума само на положителни числа
// 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; )
Изход
Въведете число: 6 Въведете число: 12 Въведете число: 7 Въведете число: 0 Въведете число: -2 Сумата е 25
В тази програма потребителят е подканен да въведе число, което се съхранява в променливата номер.
За да съхраним сумата от числата, декларираме променлива сума и я инициализираме до стойността на 0
.
В while
цикълът продължава, докато потребителят въведе редица отрицателни. По време на всяка итерация, числото, въведено от потребителя, се добавя към променливата сума.
Когато потребителят въведе отрицателно число, цикълът се прекратява. Накрая се показва общата сума.
C ++ прави … докато Loop
На do… while
линия е вариант на while
веригата с една важна разлика: тялото на do… while
цикъл се изпълнява веднъж, преди condition
се проверява.
Синтаксисът му е:
do ( // body of loop; ) while (condition);
Тук,
- Първо се изпълнява тялото на цикъла. След това
condition
се оценява. - Ако
condition
оценява наtrue
, тялото на цикъла вътре вdo
оператора се изпълнява отново. - The
condition
се оценява още веднъж. - Ако
condition
оценява наtrue
, тялото на цикъла вътре вdo
оператора се изпълнява отново. - Този процес продължава, докато
condition
оценява доfalse
. След това цикълът спира.
Блок-схема на do … while Loop
Блок-схема на C ++ do … while цикълПример 3: Показване на числа от 1 до 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; )
Изход
1 2 3 4 5
Ето как работи програмата.
Повторение | Променлива | i <= 5 | Действие |
---|---|---|---|
i = 1 | не е проверено | 1 се отпечатва и i се увеличава на 2 |
|
1-ви | i = 2 | true | 2 се отпечатва и i се увеличава на 3 |
2-ри | i = 3 | true | 3 се отпечатва и i се увеличава на 4 |
3-ти | i = 4 | true | 4 се отпечатва и i се увеличава на 5 |
4-ти | i = 5 | true | 5 се отпечатва и i се увеличава на 6 |
5-ти | i = 6 | false | Цикълът е прекратен |
Пример 4: Сума само на положителни числа
// 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; )
Изход 1
Въведете число: 6 Въведете число: 12 Въведете число: 7 Въведете число: 0 Въведете число: -2 Сумата е 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.
Въпреки това, while
и do… while
цикли обикновено се използват, когато броят на итерациите е неизвестен. Например,
while (condition) ( // body of the loop )
Вижте тези примери, за да научите повече:
- Програма C ++ за показване на серия на Фибоначи
- Програма C ++ за намиране на GCD
- Програма C ++ за намиране на LCM