Оператор break
Оператор break позволяет выйти из самого внутреннего цикла или оператора switch. Читатель может уже убедиться в том, что это позволяет повысить удобство использования операторов switch. И для циклов этот оператор тоже находит свое применение. Может так случиться, что потребуется выйти из цикла где-то посередине его выполнения, - в листинге 3.6 демонстрируется как раз такой случай.

| Листинг 3.6. Выход из цикла с помощью оператора break_
<?php
while(TRUE)
{
print("Эта строка печатается.");
break;
print("Эта строка не будет распечатана никогда.");
}
?>

Оператор break также позволяет выходить из вложенных циклов, для этого после самого оператора ставится определенная цифра. В листинге 3.7 показан выход из двух вложенных циклов.

| Листинг 3.7. Выход из вложенных циклов_
<?php
while(TRUE)
{
while(TRUE)
{
print("Эта строка печатается."); break 2;
}
print("Эта строка не будет распечатана никогда.");
}
?>

Оператор continue
Оператор continue по своему действию во многом аналогичен оператору break, за исключением того, что он не завершает полностью работу цикла, а только лишь текущую итерацию. Управление передается закрывающей фигурной скобке, и цикл продолжает выполняться дальше. Внутри циклов for, которые описываются ниже, приращение индекса цикла осуществляется так, как если бы цикл доработал нормально до конца.
Как можно себе представить, этот оператор используется для пропуска части цикла, когда выполняется определенное условие (листинг 3.8). Случайные числа генерируются внутри цикла, пока не будет сгенерировано десять чисел, каждое из которых будет больше предыдущего. Большую часть само тело цикла не будет работать из-за работы оператора if, который инициирует работу оператора continue.
Подобно оператору break, можно задавать оператор continue с последующим целым числом. В этом случае управление передается вверх на указанное число уровней.
Операторы управления
Оператор do...while
Принятие решения о продолжении выполнения цикла можно отложить на конец цикла, воспользовавшись оператором do...while. В листинге 3.9 повторяется алгоритм из листинга 3.5. Вы не заметите никакой разницы в работе программного кода, приведенного в этих листингах, до тех пор, пока дело не дойдет до пятницы. В этом случае программный код из листинга 3.5 ничего не выведет на печать. Новая же версия добавит в список дней пятницу, так как тело цикла выполняется до выполнения проверки значения переменной currentDate. Переход на цикл do.while позволит вывести на печать перечень дней до следующей пятницы.

| Листинг 3.9. Использование цикла do...while для печати названий дней недели
<?php
/*
** Присвоить переменной $currentDate значение текущей даты в секундах
*/
$currentDate = time();
// Напечатать какой- нибудь поясняющий текст print("До следующей пятницы осталось (дней):^"); 
print("<ol>n");
do
{
/*
** Распечатать название дня недели
*/
print("<li>" . date("l", $currentDate) . "</li>n");
/*
** Прибавить к переменной $currentDate 24 часа
*/
$currentDate += (60 * 60 * 24);
}
while(date("l", $currentDate) != "Friday"); print("</ol>n");
?>