Учебник РНР
Назад Глава 11. Структуры Управления Вперёд

do..while

Циклы do..while очень похожи на циклы while, но условное выражение проверяется в конце каждой итерации, а не в начале. Главное отличие от регулярных циклов while состоит в том, что первая итерация цикла do..while всегда выполняется (условие проверяется только в конце итерации), а в цикле while этого может и не быть (условие проверяется в начале каждой итерации и, если вычисляется в FALSE сразу в начале, выполнение цикла немедленно прерывается).

Для циклов do..while существует один вариант синтаксиса:

$i = 0; do { print $i; } while ($i>0);

Вышеприведённый цикл будет пройден точно один раз, поскольку после первого прохода проверка условного выражения даёт FALSE ($i не больше 0), и выполнение цикла завершается.

Продвинутые пользователи C могут быть знакомы с другим вариантом использования цикла do..while, когда разрешается остановка выполнения в середине блоков кода путём инкапсуляции их в do..while(0) и использования оператора break . Следующий фрагмент демонстрирует это:

do { if ($i < 5) { print "i is not big enough"; break; } $i *= $factor; if ($i < $minimum_limit) { break; } print "i is ok"; ...обработка i... } while(0);

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


Назад Оглавление Вперёд
while Вверх for