Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
к Л.р.2.doc
Скачиваний:
59
Добавлен:
27.03.2015
Размер:
376.32 Кб
Скачать

Оператор цикла while

Общий вид записи оператора:

while(выражение)

{ тело цикла }

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

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

Наш пример суммирования девяти членов ряда можно при помощи оператора while записать так:

double s = 0.0;

int k = 1;

while(k<=9)

{

s += 1.0/k;

k++;

}

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

Подобный цикл обычно записывают короче, хотя и менее наглядно:

while(k<=9) s += k++;

Если выражение в заголовке оператора всегда истинно, то получается бесконечный цикл:

while(1)

{.......}

Такая конструкция имеет право на существование и используется довольно часто. Как правило, такой цикл прекращают при выполнении некоторого условия, которое записывается и проверяется внутри тела цикла. Для этой цели используется условный оператор или переключатель.

Запишем наш пример, используя бесконечный цикл:

int k=1;

double s = 0.0;

while(1)

{

s += k++;

if(k > 9) break;

}

Выполнение оператора break приводит к немедленному прекращению цикла и передаче управления на следующий оператор программы, записанный сразу после оператора цикла.

Итак, цикл while завершается в следующих случаях:

- обратилось в нуль выражение, записанное в заголовке;

- в теле цикла встретился оператор break;

- в теле цикла выполнился оператор return.

Оператор цикла do...While

Общий вид такого оператора цикла:

do { тело цикла } while (условие);

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

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