САМОУЧИТЕЛЬ PHP 4



     Пожарный рукав на http://www.ognetushitel.com.ua. |     

Конструкции языка - часть 6


Продолжим разговор про циклические конструкции. Очень часто для того, чтобы упростить логику какого-нибудь сложного цикла, удобно иметь возможность его прервать в ходе очередной итерации (к примеру, при выполнении какого-нибудь особенного условия). Для этого и сущест­вует инструкция break, которая осуществляет немедленный выход из цик­ла. Она может задаваться с одним необязательным параметром — числом, которое указывает, из какого вложенного цикла должен быть произведен выход. По умолчанию используется 1, т. е. выход из текущего цикла, но иногда применяются и другие значения:

for($i=0; $i<10; $i++) {

  for($j=0; $j<10; $j++) {

    If($A[$i]==$A[$j]) break(2);

  }

}

if($i<10) echo 'Íàéäåíû ñîâïàäàþùèå ýëåìåíòû â ìàòðèöå \$A!';

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

Применение такой формы записи break — новинка PHP версии 4. Честно говоря, я не встречал ни одного другого языка, который бы использовал подобный (на мой взгляд, крайне удачный) синтаксис. Спасибо вам, разработчики PHP!

Инструкцию break удобно использовать для циклов поисков: как только очередная итерация цикла удовлетворяет поисковому условию, поиск обрывается. Например, вот цикл, который ищет в массиве $A первый нулевой элемент:

for($i=0; $i<count($A); $i++)

  if($A[$i]==0) break;

if($i<count($A)) echo "Íóëåâîé ýëåìåíò íàéäåí: i=$i";

Стандартная функция count(), которую мы еще не рассматривали, просто возвращает число элементов в массиве $A.

Инструкция continue так же, как и break, работает только "в паре" с циклическими конструкциями. Она немедленно завершает текущую итера­цию цикла и переходит к новой (конечно, если выполняется условие цикла для цикла с предусловием). Точно так же, как и для break, для continue можно указать уровень вложенности цикла, который будет продолжен по возврату управления.




Содержание  Назад  Вперед