Учебник РНР
Назад Глава 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