Урок 11. Досрочное прерывание итераций

Часто перед php программистом стоит задание прервать досрочно текущую итерацию. Это может требоваться для того, чтобы выйти из цикла, либо чтобы пропустить итерацию. Для таких случаев в языке php используются команды continue и break.

Команда  break применяется для прерывания выполнения конструкции, в которой она размещена. Используется не только в циклах, но и в условной конструкции switch(). Выполнение цикла останавливается и немедленно осуществляется выход, как только интерпретатор внутри цикла встречает конструкцию break.

Общий синтаксис конструкции  break:

break n

Где n – количество конструкций, из которых нужно выйти. Если применяются вложенные циклы, то указывают команду break 2 и происходит выход сразу из 2 циклов. По умолчанию n=1, поэтому для прерывания одного цикла нет надобности писать break 1, нужно записать просто break.  В уроке по конструкции switch() мы уже рассматривали пример использования команды break. Теперь давайте рассмотрим работу break в цикле while.

В примере ниже реализована задача угадывания секретного числа. Есть секретное число, значением которого является число от 0 до 10. В цикле нужно перебрать числа, сравнить их с секретным числом. Если есть совпадение, то следует выйти из цикла и сообщить о найденном числе.

<?php
//Задаем секретное число
$number=5;
//Номер первой итерации (повторения)
$i=0;
//Наш цикл
while($i<=10){
if($i=$number){
$rezultat=“Наше секретное число - $i”;
break;
}
else{
$rezultat= “Число не было найдено”;
}
//Важно не забыть о приращении
$i++;
}
echo $rezultat;
?>

В результате работы этого php скрипта мы увидим на экране:

«Наше секретное число – 5»

Если в этом примере убрать команду break, то секретное число все равно будет найдено. Но работа цикла while на этом не прервется и в следующей итерации значение $rezultat будет затерто значением «Число не было найдено».

Если есть необходимость завершения текущей итерации (при этом выход из всего цикла не требуется), а потом нужно перейти к следующей, то следует использовать команду continue.

Синтаксис записи continue:

continue n

Команда continue используется для того, чтобы пропустить все последующие в теле цикла операторы и начала новой итерации. Значение n указывает на количество итераций, которые нужно пропустить. По умолчанию n=1.

Теперь давайте на практике рассмотрим пример использования команды continue. Например, нам нужно вывести в браузере четные числа от 1 до 100, а также вывести их общее количество. Пример решения данной задачи:

<?php
for ($i=1,$count=0; $i<=100; $i++){
if ($i%2){
continue;
}
echo $i.“<br />”;
$count++;
}
echo $count;
?>

В условии цикла данного скрипта перебираются все целые числа от 1 до 100. Потом проверяется – можно ли поделить без остатка текущее число на два. Если нельзя, то число – нечетное и выражение  $i%2 вернет единицу, что значит true, а если можно, то число – четное. Обратите внимание, оператор % находит остаток от деления левой части выражения (в нашем случае $i) на правую часть (2).

Команда continue применяется, если число нечетное, при этом остальные выражения пропускаются и начинается новая итерация. Если число – четное, оно выведется на экран и сработает инкремент для  $count. В результате к концу выполнения всех итераций в переменной $count накопится общее количество всех четных чисел в заданном диапазоне.