Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные_работы_1-7.doc
Скачиваний:
25
Добавлен:
16.11.2019
Размер:
2.11 Mб
Скачать

2Операторы цикла

Операторы цикла используются для организации многократно повторяющихся вычислений. Любой цикл состоит из тела цикла, то есть тех операторов, которые выполняются несколько раз, начальных установок, модификации параметров цикла и проверки условия продолжения выполнения цикла (рис. 3.1). Выше было показано, как реализовать цикл с помощью двух операторов if и goto. Операторы цикла позволяют организовать цикл «явным» образом, что способствует большей оптимизации программного кода.

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

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

Цикл завершается, если условие его продолжения не выполняется. Возможно принудительное завершение, как текущей итерации, так и цикла в целом. Для этого служат операторы break, continue, и goto. Передавать управление извне внутрь тела цикла, минуя его заголовок, не рекомендуется, так как параметры цикла могут быть не определены.

Для удобства, а не по необходимости, в C++ есть три разных оператора цикла – while, do while и for.

2.1Цикл с предусловием (while)

Цикл с предусловием реализует структурную схему, приведенную на рис. 3.1, а, и имеет вид:

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

Выражение определяет условие повторения тела цикла, представленного простым или составным оператором. Выполнение цикла начинается с вычисления выражения. Если оно истинно (не равно false), выполняется оператор цикла. Если при первой проверке выражение равно false, цикл не выполнится ни разу. Тип выражения должен быть арифметическим или приводимым к нему. Выражение вычисляется перед каждой итерацией цикла. Когда выражение оказывается ложным, управление передается следующему после цикла оператору.

Тело цикла может состоять не из одного оператора, а представлять собой блок.

Пример (программа находит все делители целого положительного числа):

Для краткости изложения начало всех программ этой главы не приводится, но подразумевается

int num;

cout <<RUS( "\nВведите число : "); cin>> num;

int div = 2; // кандидат на делитель

while (div <= num)

{if (!(num % div))cout << div <<"\n";

div++;}

Для краткости изложения начало всех программ этой главы не приводится, но подразумевается, что оно включает функцию RUS, известную из предыдущих примеров, а также необходимые директивы и библиотеки.

2.2Цикл с постусловием (do … while)

Цикл с постусловием реализует структурную схему, приведенную на рис. 3.1, б, и имеет вид:

do оператор while (выражение);

Сначала выполняется оператор или блок, составляющий тело цикла, а затем вычисляется выражение. Если оно истинно (не равно false), тело цикла выполняется еще раз. Цикл завершается, когда выражение станет равным false или в теле цикла будет выполнен какой-либо оператор передачи управления. Тип выражения должен быть арифметическим или приводимым к нему.

Пример (программа осуществляет проверку ввода):

char answer;

do{cout << RUS("\nКупи слоника! "); cin >> answer; }

while (answer != 'y');