В этом уроке мы разберем управление потоком выполнения в циклах Java с помощью операторов break и continue. Это важные инструменты для оптимизации алгоритмов.
Оператор break позволяет мгновенно прервать выполнение цикла, не дожидаясь окончания всех итераций. Это полезно, например, при поиске элемента: как только нашли — выходим. Оператор continue, напротив, не выходит из цикла, а пропускает текущую итерацию и переходит к следующей. Это удобно, если нужно игнорировать определенные значения данных.
Изучая эти примеры и выполняя задания, вы поймете, как работает код в нестандартных ситуациях, научитесь избегать лишних вычислений и писать более чистые программы.
- Модуль 1: Первая программа и структура
- Модуль 2: Переменные и типы данных
- Объявление и инициализация переменных.
- Примитивы: целые числа (int, long, byte, short).
- Примитивы: дробные числа (double, float).
- Примитивы: логический тип (boolean).
- Примитивы: символьный тип (char).
- String — основы работы со строками.
- Приведение типов (Casting): расширение и сужение.
- Область видимости переменных (Scope).
- Модуль 3: Операторы
- Модуль 4: Управляющие конструкции
- Модуль 5: Массивы и Строки (Advanced)
- Создание и заполнение массива.
- Доступ к элементам по индексу.
- Свойство length и перебор массива.
- Цикл for-each для массивов.
- Многомерные массивы.
- Методы String: length, charAt, isEmpty.
- Манипуляции: substring, concat, replace.
- Сравнение строк: equals vs ==.
- Разделение строк (split) и trim.
- StringBuilder (изменяемые строки).
- Модуль 6: Методы
- Модуль 7: Классы и Объекты (ООП Часть 1)
- Модуль 8: Капсуляция и Модификаторы
- Модуль 9: Наследование и Полиморфизм (ООП Часть 2)
- Модуль 10: Обработка исключений
- Модуль 11: Коллекции и Дженерики
- Модуль 12: Функциональный стиль (Java 8+)
- Модуль 13: Полезные стандарты
1. Анализ break
Проанализируйте представленный фрагмент кода на 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. Пропуск четных чисел
В этом задании вам необходимо дополнить фрагмент кода на Java, используя оператор управления циклом. Цикл перебирает числа от 1 до 10. Ваша задача — вставить в отмеченное место оператор, который позволит пропустить итерацию цикла для четных чисел, чтобы на экран выводились только нечетные числа. Обратите внимание на структуру условия и место вставки.
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
input1S
}
System.out.println(i);
}3. Выбор оператора
В этом задании представлен код для поиска элемента в массиве. В цикле 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.");
}4. Прерывание бесконечного цикла
Из предложенных строк соберите корректную 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); }}5. Ошибка в логике continue
В этом фрагменте 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++; } }}6. Поиск точек выхода
Перед вами фрагмент кода на языке 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. Сумма с условием
Проанализируйте приведенный фрагмент кода на 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);
}
}