Операторы break и continue

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

Тренажер по Java

В этом уроке мы разберем управление потоком выполнения в циклах Java с помощью операторов break и continue. Это важные инструменты для оптимизации алгоритмов.

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

Изучая эти примеры и выполняя задания, вы поймете, как работает код в нестандартных ситуациях, научитесь избегать лишних вычислений и писать более чистые программы.

Список тем

1. Анализ break

id: 40454_java_brk_01_predict

Проанализируйте представленный фрагмент кода на Java, содержащий цикл for и оператор break. Внимательно проследите выполнение цикла и определите, какое последнее число будет выведено на экран перед его завершением. Выберите один правильный вариант ответа.

Выберите правильный вариант ответа
public class Main {
    public static void main(String[] args) {
        for (int i = 0; i <= 10; i++) {
            if (i == 5) {
                break;
            }
            System.out.println(i);
        }
    }
}
Сообщения
Проверить
Показать подсказку

2. Пропуск четных чисел

id: 40454_java_brk_02_replace

В этом задании вам необходимо дополнить фрагмент кода на Java, используя оператор управления циклом. Цикл перебирает числа от 1 до 10. Ваша задача — вставить в отмеченное место оператор, который позволит пропустить итерацию цикла для четных чисел, чтобы на экран выводились только нечетные числа. Обратите внимание на структуру условия и место вставки.

Заполните пропуски
for (int i = 1; i <= 10; i++) {
    if (i % 2 == 0) {
        input1S
    }
    System.out.println(i);
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

3. Выбор оператора

id: 40454_java_brk_03_select

В этом задании представлен код для поиска элемента в массиве. В цикле for-each происходит перебор элементов, и при совпадении с искомым значением устанавливается флаг found. Ваша задача — выбрать из выпадающего списка подходящий оператор, который следует вставить после установки флага, чтобы цикл корректно завершался при первом нахождении элемента, избегая лишних итераций. Обратите внимание на различие между операторами break и continue в контексте управления циклами.

Нужно правильно расставить в пропуски предложенные варианты
int[] numbers = {1, 2, 3, 4, 5};
int target = 3;
boolean found = false;
for (int num : numbers) {
    if (num == target) {
        found = true;
        input1S;
    }
}
if (found) {
    System.out.println("Element found.");
} else {
    System.out.println("Element not found.");
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

4. Прерывание бесконечного цикла

id: 40454_java_brk_04_build

Из предложенных строк соберите корректную Java-программу, которая демонстрирует использование оператора break для прерывания бесконечного цикла while(true). Программа должна инициализировать счётчик, выполнять его инкремент в цикле и прерывать выполнение при достижении определённого значения, после чего выводить итоговое значение. Одна из строк лишняя и в решение входить не должна.

Перетяните в правильном порядке строки из одного блока в другой
public class Main {
    public static void main(String[] args) {
        int count = 0;
        while (true) {
            count++;
            if (count > 5) { break; }
            if (count == 10) { continue; }
        }
        System.out.println("Цикл прерван при count = " + count);
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

5. Ошибка в логике continue

id: 40454_java_brk_05_error

В этом фрагменте Java-кода с циклом while допущена логическая ошибка, связанная с оператором continue, которая приводит к бесконечному циклу при определенном условии. Найдите и исправьте строки, чтобы цикл корректно выполнялся от 0 до 9 и пропускал число 5, используя оператор continue для перехода к следующей итерации. Исправьте расположение операторов в блоке кода с условием.

Найдите ошибку и исправьте
public class Main {
    public static void main(String[] args) {
        int i = 0;
        while (i < 10) {
            if (i == 5) {
                continue;
                i++;
            }
            System.out.println(i);
            i++;
        }
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

6. Поиск точек выхода

id: 40454_java_brk_06_click

Перед вами фрагмент кода на языке Java, содержащий вложенные циклы и условные операторы. Ваша задача — внимательно изучить код и кликнуть на все операторы `break`, которые действительно могут выполниться (то есть находятся внутри условий, которые могут стать истинными). Не отмечайте операторы `break`, которые никогда не будут выполнены из-за недостижимых условий, а также не отмечайте другие элементы кода, такие как `continue`, объявления переменных или условия.

Кликните по всем фрагментам, которые подходят под условие задания.
for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
        if (i == j) {
            System.out.println("i = j");
            {{break~|~t1}};
        }
        if (i * j > 6) {
            System.out.println("i * j > 6");
            {{break~|~t2}};
        }
        if (j == 3) {
            {{continue~|~t3}};
        }
    }
    if (i == 4) {
        System.out.println("i == 4");
        {{break~|~t4}};
    }
    if (i > 5) {
        // Это условие никогда не выполнится, так как i не превышает 4
        {{break~|~t5}};
    }
}
Сообщения
Проверить
Показать подсказку

7. Сумма с условием

id: 40454_java_brk_07_result

Проанализируйте приведенный фрагмент кода на Java. В нем используется цикл for для суммирования чисел от 1 до 10, но с оператором continue, который пропускает определенные итерации. Определите, какое значение будет выведено на экран (итоговая сумма после выполнения цикла). Введите это значение в поле ответа в виде одного целого числа.

Что должно получиться?
public class Main {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 10; i++) {
            if (i % 3 == 0) {
                continue;
            }
            sum += i;
        }
        System.out.println(sum);
    }
}
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру