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

13.17. Операторы перехода в PHP

Операторы перехода (jump statements) осуществляют безусловную передачу управления в определенное место программы. Мы рассмотрим следующие операторы перехода:

• break,

• continue.

13.18. Оператор break

Вы уже встречали оператор break в параграфе, посвященном оператору switch (см. п. 13.11). Когда оператор break употребляется в последовательности операторов case, управление программой передается оператору, следующему за блоком switch. Оператор break прерывает исполнение ближайшего внешнего оператора while, do, for или switch. Управление передается следующему за прерванным

оператору. Например, использование оператора break в цикле while:

<?

$arr = array ('один', 'два', 'три', 'четыре', 'стоп', 'пять');

while (list (, $val) = each ($arr)) {

    if ($val == 'стоп') {

        break ; /* в этой строчке вместо break можно использовать break 1 */

}

echo "$val<br>\n";

}

?>

Выполнение этой программы будет осуществляться до тех пор, пока значение переменной не станет равной стоп. После этого программа прерывается оператором break. В результате на экран браузера будет выведено:

один

два

три

четыре

Если бы оператора break не было, то к этим фразам бы добавилось еще две:

стоп

пять

При употреблении break можно также вместо него пользоваться таким синтаксическим обозначением break 1 — результат работы программы будет аналогичным.

Рассмотрим еще один пример:

<?

$i = 0;

while (++ $i) {

    switch($i) {

    case 5: echo "Программа прервалась на 5 <br>\n";

            break 1;

    case 10: echo "Программа прервалась на 10, и произошла остановка выполнения. <br>\n";

            break 2;

    default: break;

    }

}

?>

Переменная $i в рассмотренной программе будет постепенно увеличивать. Как только значение ее станет равным 5, она автоматически по ссылке попадет на оператор case 5:, далее произойдет выполнения выражение echo "Программа прервалась на 5
\n", что приведет к выводу строчки "Программа прервалась на 5", хотя, именно в этот момент программа еще не завершилась (это произойдет, как только выполнится оператор break 1;). Но даже в этом случае произойдет выход только из конструкции switch, но не из цикла. Дальше прибавляется по единице к имеющейся пятерке. Как только значение переменной станет равно 10, выполнится оператор break 2, за счет чего произойдет выход из оператора switch и из самого цикла while. Выполнение программы прервется окончательно. В результате получится следующее (рис. 13.6):

Рис. 13.6. Результат выполнения скрипта

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