Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Циклы.docx
Скачиваний:
2
Добавлен:
22.11.2019
Размер:
1.57 Mб
Скачать

Сравнение циклов for и while

В C++ циклы for и while, в сущности, эквивалентны. Например, следующий цикл for:

for (инициализирующее-выражение; проверочное-выражение; обновляющее-выражение)

{

оператор (ы)

}

может быть переписан так:

инициализирующее -выражение;

while (проверочное-выражение)

{

оператор (ы)

обновляющее -выражение;

}

Аналогично, представленный ниже цикл while:

while (проверочное-выражение)

тело

можно переписать так:

for ( ; проверочное-выражение;) тело

Цикл for требует трех выражений (или, формально, одного оператора и следую­щих за ним двух выражений), но они могут быть пустыми выражениями (или опера­торами).

Обязательны только два знака точки с запятой. Кстати, пропуск провероч­ного выражения в цикле for трактуется как true, поэтому следующий цикл будет продолжаться бесконечно:

for ( ; ; ) тело

Поскольку циклы for и while почти эквивалентны, какой именно использовать — в основном, вопрос стиля. Есть три отличия.

Одно из них, как уже упоминалось, за­ключается в том, что пропущенное условие проверки в цикле for интерпретируется как true.

Второе отличие связано с возможностью использования оператора инициа­лизации в цикле for для объявления переменной, которая будет локальной в цикле; в цикле while это сделать не получится.

Наконец, существует небольшое отличие, ко­гда тело цикла содержит оператор continue. Обычно про­граммисты применяют циклы for для циклов со счетчиками, потому что формат for позволяет держать всю необходимую информацию — начальное значение, конечное значение и метод обновления счетчика — в одном месте. Цикл while используется, когда заранее не известно, сколько раз будет выполняться цикл.

При проектировании цикла необходимо руководствоваться следующими указаниями:

  • Идентифицировать условие завершения цикла.

  • Инициализировать это условие перед первой проверкой.

  • Обновлять условие на каждом шаге цикла, прежде чем оно будет проверено вновь.

Цикл do while

К этому моменту вы ознакомились с двумя циклами — for и while. Третьим цик­лом в C++ является do while. Он отличается от двух других тем, что осуществляет проверку на выходе. Это значит, что такой цикл вида “кто его знает” сначала выпол­нит свое тело и только потом оценит проверочное условие, чтобы узнать, нужно ли продолжать дальше. Если условие оценивается как false, цикл завершается; в про­тивном случае выполняется новый шаг с последующей проверкой условия. Такой цикл всегда выполняется, как минимум, один раз, потому что поток управления программы проходит через его тело до того, как достигает проверочного условия. Синтаксис цикла do while показан ниже:

do

тело

while (проверочное-выражение);

Часть тело может быть единственным оператором либо блоком операторов, заключенным в фигурные скобки. На рисунке показан поток управления в цикле do while.

Обычно цикл с проверкой на входе — лучший выбор, нежели цикл с проверкой на выходе, т.к. проверка выполняется до его запуска.

Задачи.

№5

Напишите программу, в которой пользователь будет вводить числа с клавиатуры, пока не введет заранее заданное в условии «Любимое число» из некого заданного диапазона(от 1 до 20).

№6

Напишите программу, которая приглашает пользователя вводить числа. После каждого введенного значения программа должна выдавать накопленную сумму введенных значений. Программа должна завершаться при вводе 0.