Break в циклах

Тренажер по PHP для пользователей с начальным уровнем подготовки.

Тренажер PHP

Оператор `break` — это ваш "стоп-кран" в мире циклов PHP. Он позволяет немедленно и досрочно прервать выполнение любого цикла (`for`, `while`, `do-while`, `foreach`) или конструкции `switch`. Это невероятно полезно, когда вы уже нашли то, что искали в массиве, или когда наступило некое критическое условие, требующее остановки. Без `break` пришлось бы ждать, пока цикл завершится естественным путем, что неэффективно. В этом тренажере мы отработаем синтаксис `break`, научимся применять его в разных типах циклов, предсказывать, как он изменит ход выполнения программы, и даже управлять выходом из вложенных циклов. Задания построены от простого к сложному, чтобы вы уверенно овладели этим важным инструментом.

Список тем

Основы синтаксиса break

id: 38951_task_brk_1

Представим, что нам нужно перебрать числа от 0 до 9, но остановиться, как только мы дойдем до числа 5. Для этого используется оператор досрочного выхода из цикла. Вставьте пропущенное ключевое слово.

Заполните пропуски
<?php

for ($i = 0; $i < 10; $i++) {
    if ($i == 5) {
        input1S; // Прерываем цикл, если $i равно 5
    }
    echo $i . " ";
}

// Вывод продолжится здесь после выхода из цикла
echo "\nЦикл завершен.";

?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Что выведет этот цикл?

id: 38951_task_brk_2

Внимательно проанализируйте этот цикл `foreach`. Он перебирает массив чисел. Как только встречается число больше 50, цикл прерывается. Какой будет итоговая строка, выведенная на экран?

Выберите правильный вариант ответа
<?php

$numbers = [10, 25, 42, 64, 99];
$output = "";

foreach ($numbers as $num) {
    if ($num > 50) {
        break;
    }
    $output .= $num . " ";
}

echo $output;
?>
Сообщения
Проверить
Показать подсказку

Найдите ошибку в написании

id: 38951_task_brk_3

В этом коде допущена распространенная опечатка в ключевом слове для прерывания цикла. Из-за этого PHP выдаст ошибку. Найдите и исправьте строку с ошибкой.

Найдите ошибку и исправьте
<?php
$i = 0;
while (true) { // Бесконечный цикл
    echo "Итерация $i... ";
    $i++;
    if ($i > 3) {
        brake; // Что-то здесь не так...
    }
}
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Поиск первого подходящего элемента

id: 38951_task_brk_4

Оператор `break` очень удобен для поиска первого элемента в массиве, удовлетворяющего условию. Этот код ищет первого пользователя со статусом 'active'. Какое имя будет в переменной `$found_user` после выполнения кода?

Что должно получиться?
<?php
$users = [
    ['name' => 'Alex', 'status' => 'pending'],
    ['name' => 'Maria', 'status' => 'active'],
    ['name' => 'Peter', 'status' => 'active'],
];
$found_user = "Не найден";

foreach ($users as $user) {
    if ($user['status'] === 'active') {
        $found_user = $user['name'];
        break;
    }
}
echo $found_user;
?>
Сообщения
Проверить
Показать подсказку

Соберите логику выхода из `while(true)`

id: 38951_task_brk_5

Из предложенных фрагментов кода соберите работающий скрипт. Он должен имитировать процесс, который выполняется до тех пор, пока случайное число не станет равно 5. Для этого используется бесконечный цикл и выход по `break`.

Перетяните в правильном порядке строки из одного блока в другой
break;
}
while(true) {
if ($num == 5) {
echo "Выпало 5, выходим!";
$num = rand(1, 10); // Генерируем число от 1 до 10
for(;;) {
continue;
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Выход из вложенного цикла

id: 38951_task_brk_6

Оператор `break` по умолчанию прерывает только тот цикл, в котором он непосредственно находится. Внимательно посмотрите на вложенные циклы и предскажите, что выведет этот код.

Выберите правильный вариант ответа
<?php
for ($i = 0; $i < 3; $i++) {
    echo "Внешний($i): ";
    for ($j = 0; $j < 3; $j++) {
        if ($j == 1) {
            break;
        }
        echo "Внутренний($j) ";
    }
    echo "\n";
}
?>
Сообщения
Проверить
Показать подсказку

Выход из нескольких циклов: `break 2`

id: 38951_task_brk_7

Чтобы выйти сразу из нескольких вложенных циклов, оператору `break` можно передать число — уровень вложенности, который нужно прервать. Заполните пропуск, чтобы код прервал оба цикла (`for` и `while`) при выполнении условия.

Нужно правильно расставить в пропуски предложенные варианты
<?php
$running = true;
$i = 0;
while ($running) {
    echo "While-итерация. ";
    for ($j = 0; $j < 5; $j++) {
        if ($j == 2) {
            echo "Выход из двух циклов!";
            input1S;
        }
        echo "For($j) ";
    }
    $i++; // Эта строка никогда не выполнится
}
?>
break
break 1
break 2
continue 2
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
🚀 Визуализатор кода
0 / 0
Скорость:
Режим:
💡 Что происходит?
Загрузите пример для начала...
🤔
Проверка знаний
История шагов
Готов
НайтиКурс.Ру