Оператор break
Часть раздела Основы путешествия по PHP на Coddy — урок 51 из 71.
Иногда вам нужно прервать цикл досрочно, до его естественного завершения. Оператор break позволяет сделать именно это — он немедленно останавливает цикл и продолжает выполнение кода после него.
Представьте, что вы ищете в массиве конкретное значение. Как только вы его найдёте, нет смысла проверять оставшиеся элементы. Использование break экономит ненужные итерации.
<?php
$numbers = [3, 7, 2, 9, 5, 1];
foreach ($numbers as $num) {
if ($num === 9) {
echo "Found 9!\n";
break;
}
echo "Checking $num\n";
}
echo "Search complete";
?>Это выводит:
Checking 3
Checking 7
Checking 2
Found 9!
Search completeОбратите внимание, что 5 и 1 никогда не проверяются. В тот момент, когда цикл встречает 9, break полностью выходит из цикла, и выполнение переходит к «Search complete».
Оператор break работает со всеми типами циклов — for, while и foreach. Он особенно полезен, когда вы ищете что-то или когда определённое условие означает, что цикл должен остановиться немедленно.
Задание
ЛегкоПрочитайте две строки ввода:
- Список чисел, разделенных запятыми (например,
4,8,15,16,23,42) - Целевое число для поиска
Используйте цикл foreach для поиска целевого числа в массиве. Когда найдете его, выведите Found [target] at index [index]! и используйте break, чтобы немедленно выйти из цикла.
Если цикл завершится без нахождения цели, выведите [target] not found.
Подсказка: Используйте синтаксис ключ-значение в вашем цикле foreach, чтобы отслеживать индекс.
Пример 1:
Если входные данные 10,25,30,45,50 и 30, вывод должен быть:
Found 30 at index 2!Пример 2:
Если входные данные 5,10,15,20,25 и 20, вывод должен быть:
Found 20 at index 3!Пример 3:
Если входные данные 1,2,3,4,5 и 99, вывод должен быть:
99 not foundШпаргалка
Оператор break немедленно выходит из цикла и продолжает выполнение с кодом после цикла. Он работает с циклами for, while и foreach.
Пример использования break для досрочного выхода из цикла:
<?php
$numbers = [3, 7, 2, 9, 5, 1];
foreach ($numbers as $num) {
if ($num === 9) {
echo "Found 9!\n";
break;
}
echo "Checking $num\n";
}
echo "Search complete";
?>Вывод:
Checking 3
Checking 7
Checking 2
Found 9!
Search completeПосле выполнения break цикл немедленно останавливается, и оставшиеся элементы не обрабатываются.
Попробуйте сами
<?php
// Читаем ввод
$numbers = explode(',', trim(fgets(STDIN)));
$target = trim(fgets(STDIN));
// TODO: Напишите свой код ниже
// Используйте цикл foreach с синтаксисом ключ-значение для поиска цели
// Когда найдено, выведите "Found [target] at index [index]!" и прервите цикл
// Если не найдено после цикла, выведите "[target] not found"
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators