|
ды_после_прохода (их формат тот же, что и у инициализирующих
операторов). Например:
for($i=0,$j=0,$k="Points"; $i<100; $j++,$i+=$j) $k=$k.".";
Хочется добавить, что приведенный пример (да и вообще любой цикл for) можно
реализовать и через while, только это будет выглядеть не так изящно и лаконично.
Например:
Глава 9. Конструкции языка 157
$i=0; $j=0; $k="Points";
while($i<100) {
$k.=".";
$j++; $i+=$j;
}
Вот, собственно говоря, и все... Хотя нет. Попробуйте угадать: сколько точек
доба-
вится в конец переменной $k после выполнения цикла?
Как обычно, имеется и альтернативный синтаксис конструкции:
for(инициализирующие_команды; условие_цикла; команды_после_прохода):
операторы;
endfor;
Инструкции break и continue
Продолжим разговор про циклические конструкции. Очень часто для того, чтобы уп-
ростить логику какого-нибудь сложного цикла, удобно иметь возможность его пре-
рвать в ходе очередной итерации (к примеру, при выполнении какого-нибудь
особен-
ного условия). Для этого и существует инструкция 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 первый нулевой элемент:
Часть III. Основы языка PHP 158
for($i=0; $i
|
|