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