Содержание
Выполнение цикла for
Цикл for в C++ выполняется в 3 шага:
Шаг №1: Объявление переменных. Как правило, здесь выполняется определение и инициализация счетчиков цикла, а точнее — одного счетчика цикла. Эта часть выполняется только один раз, когда цикл выполняется впервые.
Шаг №2: Условие. Если оно равно false, то цикл немедленно завершает свое выполнение. Если же условие равно true, то выполняется тело цикла.
Шаг №3: Инкремент/декремент счетчика цикла. Переменная увеличивается или уменьшается на единицу. После этого цикл возвращается к шагу №2.
Рассмотрим пример цикла for и разберемся детально, как он работает:
#include <iostream>
int main() { for (int count = 0; count < 10; ++count) std::cout << count << » «;
return 0; }
1 2 3 4 5 6 7 8 9 |
#include <iostream> intmain() { for(intcount=;count<10;++count) std::cout<<count<<» «; return; } |
Сначала мы объявляем переменную и присваиваем ей значение . Далее проверяется условие , а так как равен , то условие имеет значение true. Следовательно, выполняется тело цикла, в котором мы выводим в консоль переменную (т.е. значение ).
Затем выполняется выражение , т.е. инкремент переменной. Затем цикл снова возвращается к проверке условия. Условие имеет значение true, поэтому тело цикла выполняется опять. Выводится , а переменная увеличивается уже до значения . Условие является истинным, поэтому выводится , а увеличивается до и так далее.
В конце концов, увеличивается до , а условие является ложным, и цикл завершается. Следовательно, результат выполнения программы:
Циклы for могут быть несколько сложны для новичков, однако опытные кодеры любят их, так как эти циклы очень компактны и удобны. Для наглядности, давайте преобразуем цикл for, приведенный выше, в эквивалентный цикл while:
#include <iostream>
int main() { { // внешние скобки нужны для обеспечения области видимости цикла int count = 0; while (count < 10) { std::cout << count << » «; ++count; } }
return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <iostream> intmain() { {// внешние скобки нужны для обеспечения области видимости цикла intcount=; while(count<10) { std::cout<<count<<» «; ++count; } } return; } |
Обратите внимание, внешние фигурные скобки здесь необходимы, так как переменная выходит из области видимости при завершении цикла
C++ do…while Loop
The loop is a variant of the loop with one important difference: the body of loop is executed once before the is checked.
Its syntax is:
Here,
- The body of the loop is executed at first. Then the is evaluated.
- If the evaluates to , the body of the loop inside the statement is executed again.
- The is evaluated once again.
- If the evaluates to , the body of the loop inside the statement is executed again.
- This process continues until the evaluates to . Then the loop stops.
Example 3: Display Numbers from 1 to 5
Output
1 2 3 4 5
Here is how the program works.
Iteration | Variable | i <= 5 | Action |
---|---|---|---|
not checked | 1 is printed and is increased to 2 | ||
1st | 2 is printed and is increased to 3 | ||
2nd | 3 is printed and is increased to 4 | ||
3rd | 4 is printed and is increased to 5 | ||
4th | 5 is printed and is increased to 6 | ||
5th | The loop is terminated |
Example 4: Sum of Positive Numbers Only
Output 1
Enter a number: 6 Enter a number: 12 Enter a number: 7 Enter a number: 0 Enter a number: -2 The sum is 25
Here, the 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 variable.
Output 2
Enter a number: -6 The sum is 0.
The body of the loop runs only once if the user enters a negative number.
С этим читают