Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

13.14. Конструкция do ... while в PHP

DO ... while — это тоже цикл, отличается от while тем, что значение логического выражения проверяется не до, а после окончания работы операторов, включенных в сам цикл. Таким образом, do ... while гарантированно будет выполнен хотя бы один раз, что в случае с while совсем не обязательно. Если условие ложно, управление сразу будет передано дальше. Например:

<?

$i = 5;

$full = 0;

do {

    $full += $i;

}

while($i-- > 0);

print "Итого: $full ";

?>

Приведем структурограммуданного оператора (рис. 13.4).

Рассмотрим два простых цикла и принцип их работы:

<?

$num = 0;

print "счетчик цикла while: ";

while($num++ < 10)

    print "$num";

$num = 0;

print "счетчик цикла do: ";

do

    print "$num";

while ($num++ < 10) ;

?>

В результате действия программы на экран будет выведено:

счетчик цикла while: 12345678910

счетчик цикла do: 012345678910

Рис. 13.4. Конструкция do ... while

Отсюда можно сделать вывод, что цикл do выполняется 11 раз, а цикл while — 10. В обоих случаях конечное значение счетчика 11.

Опытные программисты, использующие язык С, знакомы с иным использованием do ... while, позволяющим прекратить исполнение блока операторов в середине путем внедрения его в цикл do ... while(0) и использования оператора break. Следующий код демонстрирует такую возможность:

do {

    if ($i < 5) {

        print "i меньше требуемого значения";

        break;

    }

    $i* = $factor;

    if ($i < $minimum_limit) {

        break;

    }

    print "i значение выражения удовлетворяет потребности";

}

while(0);


ВНИМАНИЕ

Использование конструкции do...while(O) приводит к выполнению цикла только один раз. В процессе выполнения оператора итерации будет проверено значение логического выражения, а оно равно false (0), и выполнение цикла завершится.


<< Предыдущий параграф Следующий параграф >>
Оглавление