Чем отличается оператор break от оператора continue php

Операторы 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 – перебор массива

Предназначен для перебора элементов массива.

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 – цикл с счетчиком

Цикл работает пока выполняется заданное условие. Обычно применяется в качестве счетчика.

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 – цикл с предусловием

Результат:

Альтернативный синтаксис while

Do-while – цикл с постусловием

В отличии от while этот цикл проверяет выполнения условия после каждой итерации. Do-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

Unlock Full Access 50% off

COLOR PICKER

colorpicker

Join our Bootcamp!

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

loader

Очень часто при работе с циклами требуется пропустить итерацию из-за каких-то условий, и перейти к следующей. Кроме того, порой и вовсе нужно прервать цикл ещё до того, как он должен был завершиться. Для этого используются специальные операторы – 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 без остатка. Значит эти числа – первичны. А остальные числа, которые делятся на 3, нам не нужны. Значит они для нас должны иметь второстепенное значение. И в цикле мы просто отсекаем лишнее, а затем идёт основной алгоритм – вывод того, что нам нужно.

Я не жду от вас, что вы сейчас полностью поймёте о чём я говорю, но будьте уверены – со временем вы к этому придёте через практику.

А сейчас – за домашнее задание.

Источник

Читайте также:  На чем пишется php
Оцените статью