>val = val + 1
.После выполнения тела цикл >while
снова проверяет условие. Если после нового увеличения значение переменной >val
все еще меньше или равно 10, тело цикла >while
выполняется снова. Проверка условия и выполнение тела цикла продолжится до тех пор, пока значение переменной >val
остается меньше или равно 10.
Как только значение переменной >val
станет больше 10, происходит выход из цикла >while
и управление переходит к оператору, следующему за ним. В данном случае это оператор, отображающий результат на экране, за которым следует оператор >return
, завершающий функцию >main()
и саму программу.
Упражнение 1.9. Напишите программу, которая использует цикл >while
для суммирования чисел от 50 до 100.
Упражнение 1.10. Кроме оператора >++
, который добавляет 1 к своему операнду, существует оператор декремента (>--
), который вычитает 1. Используйте оператор декремента, чтобы написать цикл >while
, выводящий на экран числа от десяти до нуля.
Упражнение 1.11. Напишите программу, которая запрашивает у пользователя два целых числа, а затем отображает каждое число в диапазоне, определенном этими двумя числами.
1.4.2. Оператор >for
В рассмотренном ранее цикле >while
для управления количеством итераций использовалась переменная >val
. Мы проверяли ее значение в условии, а затем в теле цикла >while
увеличивали его.
Такая схема, подразумевающая использование переменной в условии и ее инкремент в теле столь популярна, что было разработано второе средство управления — оператор>for
, существенно сокращающий подобный код. Используя оператор >for
, можно было бы переписать код программы, суммирующей числа от 1 до 10, следующим образом:
>#include
>int main() {
> int sum = 0;
> // сложить числа от 1 до 10 включительно
> for (int val = 1; val <= 10; ++val)
> sum += val; // эквивалентно sum = sum + val
> std::cout << "Sum of 1 to 10 inclusive is "
> << sum << std::endl;
> return 0;
>}
Как и прежде, определяем и инициализируем переменную >sum
нулевым значением. В этой версии мы определяем переменную >val
как часть самого оператора >for
.
>for (int val = 1; val <= 10; ++val)
> sum += val;
У каждого оператора >for
есть две части: заголовок и тело. Заголовок контролирует количество раз выполнения тела. Сам заголовок состоит из трех частей: оператора инициализации, условия и выражения. В данном случае оператор инициализации определяет, что объекту >val
типа >int
присвоено исходное значение >1
:
>int val = 1;
Переменная >val
существует только в цикле >for
; ее невозможно использовать после завершения цикла. Оператор инициализации выполняется только однажды перед запуском цикла >for
.
Условие сравнивает текущее значение переменной >val
со значением >10
:
>val <= 10
Условие проверяется при каждом цикле. Пока значение переменной >val
меньше или равно >10
, выполняется тело цикла >for
.
Выражение выполняется после тела цикла >for
. В данном случае выражение использует префиксный оператор инкремента, который добавляет >1
к значению переменной >val
:
>++val
После выполнения выражения оператор >for
повторно проверяет условие. Если новое значение переменной