Оператор цикла 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.