- Операторы break и continue в PHP
- Прерывание цикла - break
- Пример
- Пример
- Прерывание итерации - continue
- Пример
- Использование циклов в PHP
- Foreach – перебор массива
- Результат:
- Альтернативный синтаксис foreach
- For – цикл с счетчиком
- Результат:
- Альтернативный синтаксис
- Результат:
- Альтернативный синтаксис for
- While – цикл с предусловием
- Результат:
- Альтернативный синтаксис while
- Do-while – цикл с постусловием
- Результат:
- Управление циклами
- Break
- Continue
- Результат:
- PHP Break and Continue
- Example
- PHP Continue
- Example
- Break and Continue in While Loop
- Break Example
- Continue Example
- COLOR PICKER
- Report Error
- Thank You For Helping Us!
- Операторы break и continue в PHP
- Пример использования break
- Пример использования continue
Операторы break и continue в PHP
Очень часто при работе с циклами требуется пропустить одну итерацию и перейти к следующей. Не менее часто возникает необходимость и вовсе нужно прервать цикл ещё до того, как он должен был завершиться. Для этого используются специальные операторы PHP – continue (переход к следующей итерации) и break (остановка цикла).
Оператор break завершает цикл полностью, continue просто сокращает текущую итерацию и переходит к следующей итерации:
while ($foo) < continue; --- возвращаемся сюда --┘ break; ----- покидаем цикл ----┐ > |Прерывание цикла - break
Для примера напишем простейший цикл, внутри которого мы будем выяснять, есть ли искомое число в массиве, или нет:
Пример
$array = [5, 9, 6, 7, 33, 2, 48, 7, 18, 17];
$number = 7;
$isNumberFound = false;
foreach ($array as $value) echo 'Сравниваем с числом значение ' . $value . '
';
if ($item === $number) $isNumberFound = true;
>
>
echo $isNumberFound ? 'Число найдено' : 'Число не найдено';
?>Результат выполнения кода:
Сравниваем с числом значение 5 Сравниваем с числом значение 9 Сравниваем с числом значение 6 Сравниваем с числом значение 7 Сравниваем с числом значение 33 Сравниваем с числом значение 2 Сравниваем с числом значение 48 Сравниваем с числом значение 7 Сравниваем с числом значение 18 Сравниваем с числом значение 17 Число не найдено
Перед циклом мы инициализировали переменную $isNumberFound , назначение которой — хранить информацию о том, найдена ли искомая цифра в массиве или нет. Изначально приравниваем её к false .
В цикле идём по массиву и сравниваем каждый его элемент $value с числом. Когда совпадение найдено значение переменной $isNumberFound станет равной true и мы уже знаем, что искомая цифра в массиве есть.
Из примера видно, что все элементы массива сравнивались с искомой цифрой. А что если мы хотим найти цифру 7 и на этом завершить работу цикла? Для этого используем оператор break :
Пример
$array = [5, 9, 6, 7, 33, 2, 48, 7, 18, 17];
$number = 7;
$isNumberFound = false;
foreach ($array as $value) echo 'Сравниваем с числом значение ' . $value . '
';
if ($item === $number) $isNumberFound = true;
break;
>
>
echo $isNumberFound ? 'Число найдено' : 'Число не найдено';
?>Результат выполнения кода:
Сравниваем с числом значение 5 Сравниваем с числом значение 9 Сравниваем с числом значение 6 Сравниваем с числом значение 7 Число найдено
В примере мы останавливаем работу цикла, как только искомая цифра 7 найдена. При этом сценарий завершился с гораздо меньшим числом итераций.
Прерывание итерации - continue
Оператор continue предназначен для остановки обработки текущего блока кода в теле цикла и перехода к следующей итерации. В отличие от break он не прерывает работу цикла, а всего лишь выполняет переход к следующей итерации.
В следующем примере пропускается значение 3 цикла for:
Пример
for ($x = 0; $x < 10; $x++) if ($x == 3) continue;
>
echo "Число: $x
";
>
?>Результат выполнения кода:
Операторы break и continue применяются в циклах for, foreach, while, do-while или switch
Использование циклов в PHP
PHP имеет четыре вида циклов и операторы управления ими, рассмотрим поподробнее.
Foreach – перебор массива
Предназначен для перебора элементов массива.
$array = array( 1 => 'Значение 1', 2 => 'Значение 2', 3 => 'Значение 3', 4 => 'Значение 4', ); // Вывод ключей foreach ($array as $key => $val) < echo $key . '
'; > // Вывод значений foreach ($array as $key => $val) < echo $val . '
'; >Результат:
1 2 3 4 Значение 1 Значение 2 Значение 3 Значение 4
Альтернативный синтаксис foreach
For – цикл с счетчиком
Цикл работает пока выполняется заданное условие. Обычно применяется в качестве счетчика.
// Счетчик от 0 до 5 for ($n = 0; $n // Счетчик от 5 до 0 for ($n = 5; $n >= 0; $n--)Результат:
Альтернативный синтаксис
$array = array( 'Значение 1', 'Значение 2', 'Значение 3', 'Значение 4', ); for ($n = 0; $n < count($array); $n++) < echo $array[$n] . '
'; >Результат:
Значение 1 Значение 2 Значение 3 Значение 4
Альтернативный синтаксис for
While – цикл с предусловием
Т.е. если перед началом итерации условие выполняется, то цикл продолжает свою работу.
Результат:
Альтернативный синтаксис while
Do-while – цикл с постусловием
В отличии от while этот цикл проверяет выполнения условия после каждой итерации. Do-while не имеет альтернативного синтаксиса.
Результат:
Управление циклами
Break
Вызов break или break 1 в цикле останавливает его.
Для вложенных циклов используется break 2 и т.д.
Continue
Используется для пропуска итерации.
Результат:
Для вложенных циклов по аналогии с break 2 , break 3 – continue 2 , continue 3 .
PHP Break and Continue
You have already seen the break statement used in an earlier chapter of this tutorial. It was used to "jump out" of a switch statement.
The break statement can also be used to jump out of a loop.
This example jumps out of the loop when x is equal to 4:
Example
PHP Continue
The continue statement breaks one iteration (in the loop), if a specified condition occurs, and continues with the next iteration in the loop.
This example skips the value of 4:
Example
Break and Continue in While Loop
You can also use break and continue in while loops:
Break Example
Continue Example
COLOR PICKER
Report Error
If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:
Thank You For Helping Us!
Your message has been sent to W3Schools.
Top Tutorials
Top References
Top Examples
Get Certified
W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.
Операторы break и continue в PHP
Очень часто при работе с циклами требуется пропустить итерацию из-за каких-то условий, и перейти к следующей. Кроме того, порой и вовсе нужно прервать цикл ещё до того, как он должен был завершиться. Для этого используются специальные операторы – continue (для перехода к следующей итерации) и break (остановка цикла).
Чтобы было понятнее, я предлагаю рассмотреть несколько практических примеров, которые позволят понять, когда же именно могут понадобиться эти операторы.
Пример использования break
Давайте напишем небольшой скрипт, который будет искать число в массиве. Для начала определим массив и число:
А теперь давайте напишем простейший цикл, внутри которого мы будем выяснять, есть ли искомое число в массиве, или нет.
'; if ($item === $number) < $isNumberFound = true; >> echo $isNumberFound ? 'Число найдено' : 'Число не найдено';
Перед циклом мы создали переменную $isNumberFound, которая будет хранить информацию о том, найдено ли число в массиве или нет. Изначально она равна false.
Затем мы начинаем идти по массиву и сравнивать каждый его элемент с числом. Если совпадение найдено, то значение переменной $isNumberFound становится равной true, и теперь мы уже знаем, что искомое число в массиве есть.
При этом на каждой итерации перед проверкой мы выводим информацию о том, какое сравнение сейчас производится.
При этом мы видим, что все элементы массива сравнивались с числом. И мы понимаем, что нам было бы достаточно найти число и на этом завершить работу цикла. С помощью оператора break это сделать проще простого!
'; if ($item === $number) < $isNumberFound = true; break; >> echo $isNumberFound ? 'Число найдено' : 'Число не найдено';
Просто останавливаем работу цикла, как только искомое число найдено. При этом мы видим, что скрипт завершился с гораздо меньшим числом действий.
Таким образом, мы сделали нашу программу более оптимизированной, так как она больше не делает лишних действий. Ещё один пример по теме вы найдёте в домашнем задании.
Пример использования continue
Не менее редко при каких-то условиях требуется перейти к следующей итерации, не доходя до конца текущей. К примеру – мы хотели бы вывести все числа от 1 до 20, за исключением тех, что делятся на 3 без остатка.
Мы могли бы решить эту задачу с помощью условия – если остаток от деления на 3 не равен нулю, то вывести число.
Результат будет следующим:
Однако, это можно сделать более изящно. А именно – если число делится на 3 без остатка, то просто переходить к следующей итерации и ничего не делать. А внутри тела цикла, уже вне каких-либо условий, выполнять какой-то код.
Результат работы этого кода будет таким же, как и в предыдущем случае. Но с точки зрения сложности чтения и понимания, код упростился. Я понимаю, сейчас трудно уловить эту тонкую грань, но подумайте вот о чём. В задании мы говорили о том, чтобы вывести числа, не делящиеся на 3 без остатка. Значит эти числа – первичны. А остальные числа, которые делятся на 3, нам не нужны. Значит они для нас должны иметь второстепенное значение. И в цикле мы просто отсекаем лишнее, а затем идёт основной алгоритм – вывод того, что нам нужно.
Я не жду от вас, что вы сейчас полностью поймёте о чём я говорю, но будьте уверены – со временем вы к этому придёте через практику.
А сейчас – за домашнее задание.