оператор;
где оператор – это простой, составной или пустой оператор.
Цикл выполняется до тех пор, пока условие принимает значение «истина», т.е. выражение в скобках возвращает ненулевой результат. Это цикл с предусловием – сначала проверяется условие, затем выполняется оператор. Поэтому цикл while не выполнится ни разу, если изначально результат вычисления условия будет равен 0.
Основная форма оператора do – while:
do
оператор;
while (условие);
где оператор – это простой, составной или пустой оператор.
Оператор do – while – оператор цикла с постусловием, т.е. сначала выполняется оператор, а затем проверяется условие на истинность. Так как в цикле do–while условие проверяется в конце цикла, то цикл будет выполнен хотя бы один раз.
В циклах типа while и do–while допустимы те же способы досрочного выхода из цикла и досрочное завершение текущего шага цикла, как и в операторе for, но в последнем случае в отличие от цикла for управление передается на проверку условия. Для предотвращения бесконечного цикла внутри циклов while и do–while нужно предусмотреть изменение переменных, входящих в условие.
|
|
Например:
int i;
for (i=1;i<=300;i++) // Печать целых чисел, кратных 5
{
if (i%5!=0) continue;
printf(“%5d”,i);
}
Примеры бесконечных циклов:
1) for(;;)
оператор;
2) while(число_не_0) // Всегда истинно!
оператор;
3) do
оператор;
while(число_не_0); // Всегда истинно!
Среди операторов цикла обязательно должно быть условие выхода.
Вложенные циклы
В случае вложенных циклов один цикл находится внутри другого, например:
for(i=nn;i<nk;i++)
for(j=mn;j<mk;j++)
оператор;
где оператор – это простой, составной или пустой оператор. Внутренний цикл будет выполняться для каждого значения параметра i, удовлетворяющего условию внешнего цикла.
Пример:
int i,j;
for(i=1;i<10;i++) // Печать таблицы умножения
{
for(j=1;j<4;j++)
printf(“\n %d*%d=%2d”, i, j, i*j);
printf(“\n”);
}