×
Traktatov.net » Язык программирования C++. Пятое издание » Читать онлайн
Страница 13 из 714 Настройки
эквивалентна выражению >val = val + 1.

После выполнения тела цикл >while снова проверяет условие. Если после нового увеличения значение переменной >val все еще меньше или равно 10, тело цикла >while выполняется снова. Проверка условия и выполнение тела цикла продолжится до тех пор, пока значение переменной >val остается меньше или равно 10.

Как только значение переменной >val станет больше 10, происходит выход из цикла >while и управление переходит к оператору, следующему за ним. В данном случае это оператор, отображающий результат на экране, за которым следует оператор >return, завершающий функцию >main() и саму программу.

Упражнения раздела 1.4.1

Упражнение 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 повторно проверяет условие. Если новое значение переменной