do..while
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); |
Не волнуйтесь, если вы здесь не поняли ничего или почти ничего. Вы можете кодировать скрипты и даже полноценные приложения без использования этой 'возможности'.