Оператор цикла с проверкой условия после тела цикла do while
Оператор цикла while называется циклом с постусловием и имеет следующий формат:
do тело цикла while (выражение);
Оператор do while содержит условную операцию (такую же, как в операторе if), и вызывает исполнение операторов в этом блоке до тех пор, пока условие верно. Проверка условия производится после выполнения тела цикла, поэтому оператор тела цикла будет выполнен хотя бы один раз. В качестве выражения допускается использовать любое выражение языка Си, а в качестве тела любой оператор, в том числе пустой или составной. Схема выполнения оператора do while следующая:
- Выполняется тело цикла (которое может быть составным оператором)
- Вычисляется выражение.
- Если выражение ложно, то выполнение оператора do while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполнение оператора продолжается с пункта 1.
Чтобы прервать выполнение цикла до того, как условие станет ложным, можно использовать оператор break.
Оператор do while в большинстве случаев соответствует одной машинной команде, поэтому может быть использован для написания эффективных по коду и быстродействию программ. Например:
i=10 do тело цикла; while(--i<0);Однако, конкретно в реализации компилятора C-51, намного эффективнее следующая конструкция:
for(i=10;i>0;i--) тело цикла;Операторы while и do while могут быть вложенными.
Пример использования вложенных операторов цикла:
int i,j,k; ... i=0;j=0;k=0; do{i++;j--; while (a[k]<i)k++; } while(i<30&&j<-30);