Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Си++ Занятие 5.doc
Скачиваний:
5
Добавлен:
13.11.2019
Размер:
153.09 Кб
Скачать

10

Занятие 5

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

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

Рис. 1 Структурные схемы операторов цикла: a – цикл с предусловием,

б – цикл с постусловием

Один поход цикла называется итерацией. Проверка условия выполняется на каждой итерации либо до тела цикла (тогда говорят о цикле с предусловием), либо после тела цикла (цикл с постусловием). Разница между ними состоит в том, что тело цикла с постусловием всегда выполняется хотя бы один раз, после чего проверяется, надо ли его выполнять еще раз. Проверка необходимости выполнения цикла с предусловием делается до тела цикла, поэтому возможно, что он не выполнится ни разу.

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

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

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

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

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

Цикл с предусловием реализует структурную схему, приведенную на рис. 1 а. Такой цикл используется в том случае, когда не известно точное число повторов (итераций). Оператор цикла имеет вид:

while (выражение) тело цикла

В качестве выражения допускается использовать любое выражение языка С, а в качестве тела – любой оператор, в том числе пустой или составной. Схема выполнения оператора while следующая:

1) вычисляется выражение

2) если выражение ложно, то выполнение оператора while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполняется тело цикла.

3) процесс повторяется с пункта 1

Важно отметить, что выражение вычисляется до начала и после каждого прохода цикла. Цикл не выполняется ни разу, если выражение ложно (равно 0).

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

Пример 1. Вычисление суммы чисел от 0 до 9

# include <stdio.h>

void main()

{

int i=0, sum=0;

while (i++ < 10) //условие выполнения тела цикла

{ //начало тела цикла

sum+=i; //тело цикла

}// конец тела цикла

printf(“значение суммы = %d \n”,sum);

}

В выражении (i++ < 10) сначала выполняется операция инкремента i++, а затем – проверка условия i<10.

С помощью оператора while легко организовать бесконечный цикл.

Пример 2. Бесконечный цикл

while (1)

{ операторы цикла

break;

…}

Выражение в скобках (1) подразумевает проверку условия (1==1), которое всегда истинно, поэтом естественного выхода из цикла нет. Такие циклы следует использовать в тех случаях, когда заранее неизвестно условие выхода из цикла, и оно формируется в теле цикла в процессе работы программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]