Операторы передачи управления
ADO в Delphi AJAX Android C++ CakePHP CMS COM CSS Delphi Flash Flex HTML Internet Java JavaScript MySQL PHP RIA SCORM Silverlight SQL UML XML Бази даних Веб-розробка Генетичні алгоритми ГІС Гітара Дизайн Економіка Інтелектуальні СДН Колір Масаж Математика Медицина Музика Нечітка логіка ООП Патерни Подання знань Розкрутка сайту, SEO САПР Сесії в PHP Системне програмування Системний аналіз Тестологія Тестування ПЗ Фреймворки Штучний інтелект
|
Операторы передачи управления
Операторы передачи управленияИногда в случае особых обстоятельств требуется немедленно завершить работу цикла и передать управление первой инструкции программы, расположенной за последней инструкцией цикла. Для этого используют операторы break и continue. BreakОператор break заканчивает выполнение текущего цикла, будь то for, foreach, while, do..while или switch. break может использоваться с числовым аргументом, который говорит, работу скольких управляющих структур, содержащих его, нужно завершить. <?php $i=1; while ($i) { $n = rand(1,10); // генерируем произвольное число // от 1 до 10 echo "$i:$n "; // выводим номер итерации и // сгенерированное число if ($n==5) break; /* Если было сгенерировано число 5, то прекращаем работу цикла. В этом случае все, что находится после этой строчки внутри цикла, не будет выполнено */ echo "Цикл работает <br>"; $i++; } echo "<br>Число итераций цикла $i "; ?>Пример 3.8. Оператор break Результатом работы этого скрипта будет примерно следующее: 1:7 Цикл работает 2:2 Цикл работает 3:5 Число итераций цикла 3 Если после оператора break указать число, то прервется именно такое количество содержащих этот оператор циклов. В приведенном выше примере это неактуально, поскольку вложенных циклов нет. Немного изменим наш скрипт: <?php $i=1; while ($i) { $n = rand(1,10); // генерируем произвольное число // от 1 до 10 switch ($n){ case 5: echo "<font color=blue> Выход из switch (n=$n)</font>"; break 1; // прекращаем работу switch // (первого содержащего break цикла) case 10: echo "<font color=red> Выход из switch и while (n=$n)</font>"; break 2; // прекращаем работу switch и while // (двух содержащих break циклов) default: echo "switch работает (n=$n), "; } echo " while работает – шаг $i <br>"; $i++; } echo "<br>Число итераций цикла $i "; ?> continueИногда нужно не полностью прекратить работу цикла, а только начать его новую итерацию. Оператор continue позволяет пропустить дальнейшие инструкции из блока_выполнения любого цикла и продолжить выполнение с нового круга. continue можно использовать с числовым аргументом, который указывает, сколько содержащих его управляющих конструкций должны завершить работу. Заменим в примере предыдущего параграфа оператор break на continue. Кроме того, ограничим число шагов цикла четырьмя. <?php $i=1; while ($i<4) { $n = rand(1,10); // генерируем произвольное число // от 1 до 10 echo "$i:$n "; // выводим номер итерации и // сгенерированное число if ($n==5) { echo "Новая итерация "; continue; /* Если было сгенерировано число 5, то начинаем новую итерацию цикла, $i не увеличивается */ } echo "Цикл работает <br>"; $i++; } echo "<br>Число итераций цикла $i "; ?> Результатом работы этого скрипта будет 1:10 Цикл работает 2:5 Новая итерация 2:1 Цикл работает 3:1 Цикл работает Число итераций цикла 4 Заметим, что после выполнения оператора continue работа цикла не заканчивается. В примере счетчик цикла не меняется в случае получения числа 5, поскольку он находится после оператора continue. Фактически с помощью continue мы пытаемся избежать ситуации, когда будет сгенерировано число 5. Поэтому можно было просто написать, заменив оператор continue на проверку истинности выражения: <?php $i=1; while ($i<4) { $n = rand(1,10); // генерируем произвольное число // от 1 до 10 if ($n!==5) { echo "$i:$n <br>"; // выводим номер итерации // и сгенерированное число $i++; } } ?> В PHP существует одна особенность использования оператора continue – в конструкциях switch он работает так же, как и break. Если switch находится внутри цикла и нужно начать новую итерацию цикла, следует использовать continue 2.
Зверніть увагу на додаткові посиланняЯкщо вас цікавить...Головний розділСторінки, близькі за змістомзагрузка...
|
Теми розділу
Сторінки, близькі за змістом
|
Copyright © 2008—2024 Портал Знань.
При використанні матеріалів посилання, для інтернет-ресурсів — гіперпосилання, на Znannya.org обов'язкове.
Зв'язок
|
НТУУ "КПІ" Інженерія програмного забезпечення КПІ Лабораторія СЕТ |
|