switch-case в Java — это управляющая конструкция для выбора одной ветки из нескольких по значению выражения. Она удобна, когда вместо длинной цепочки if/else нужно обработать множество вариантов. В switch используются метки case, опциональная ветка default и, при необходимости, break, чтобы избежать «проваливания» в следующий case. В уроке: разберём синтаксис, типичные ошибки и примеры, как работает код. Это практический тренажер Java онлайн: задания, тесты и тренировка без регистрации.
- Выбор ветки по значению
breakи намеренный fall-throughdefaultи группировка case
- Модуль 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. Каркас switch-case
В данном задании представлен каркас конструкции switch-case в Java для переменной int dayOfWeek, которая может принимать значения от 1 до 7. Заполните пропуски ключевыми словами и элементами синтаксиса (switch, case, default, break и фигурные скобки), чтобы конструкция стала полностью корректной и компилировалась без ошибок. Обратите внимание на правильное расположение всех обязательных частей оператора switch. После заполнения всех пропусков программа должна корректно определять день недели и выводить соответствующее сообщение.
int dayOfWeek = 3;
String dayName;
input1S (dayOfWeek) input2S
case 1:
dayName = "Понедельник";
input3S
case 2:
dayName = "Вторник";
break;
case 3:
dayName = "Среда";
break;
case 4:
dayName = "Четверг";
break;
case 5:
dayName = "Пятница";
break;
case 6:
case 7:
dayName = "Выходной";
break;
input4S
dayName = "Неизвестный день";
break;
input5S
System.out.println("Сегодня: " + dayName);2. Где нужен break
В этом примере используется оператор switch по целочисленному значению переменной day. Для каждого поддерживаемого дня недели должен выполняться ровно один вызов System.out.println(...), без перехода в следующие ветки. Дополните фрагмент кода, вставив недостающие операторы, чтобы при значении day = 2 на консоль выводилась только строка "Tuesday", а при других значениях не происходило лишних выводов из соседних case.
int day = 2;
switch (day) {
case 1:
System.out.println("Monday");
input1S
case 2:
System.out.println("Tuesday");
input2S
default:
System.out.println("Unknown day");
}3. Исправь проваливание в следующий case
В этом фрагменте Java-кода используется оператор switch для выбора дня недели по числовому значению переменной day. Из-за неправильной работы с оператором break при значении day = 2 в консоль выводятся строки сразу из нескольких веток switch. Найдите место, где не хватает остановки выполнения текущего case, и исправьте соответствующую строку так, чтобы при day = 2 выводился только один день недели.
public class Main { public static void main(String[] args) { int day = 2; switch (day) { case 2: System.out.println("Tuesday"); case 3: System.out.println("Wednesday"); } }}4. Группировка case для одинакового результата
Дополните фрагмент Java‑кода с оператором switch так, чтобы несколько значений вели в одну и ту же ветку. Номер дня недели задаётся целым числом: 1 и 2 должны считаться будними днями, 6 и 7 — выходными. В местах input1–input5 выберите из выпадающего списка подходящие фрагменты кода (case ...: и break;), чтобы правильно сгруппировать варианты и получить корректное поведение без лишнего выполнения следующих веток.
int day = 2;
switch (day) {
input1S
input2S
System.out.println("Будний день");
input3S
input4S
input5S
System.out.println("Выходной");
break;
default:
System.out.println("Некорректный номер дня");
}5. Собери switch в правильном порядке
Из предложенных строк соберите корректный фрагмент Java-кода: объявление целочисленной переменной rating и оператор switch, который для значения 5 выводит «Отлично», для 4 — «Хорошо», а для всех остальных значений — «Нужно постараться». Некоторые строки лишние (например, добавляют другие оценки или повторное объявление переменной) и не должны входить в решение.
int rating = 4;switch (rating) { case 5: System.out.println("Отлично"); break; case 4: System.out.println("Хорошо"); break; default: System.out.println("Нужно постараться");} case 3: System.out.println("Удовлетворительно"); break;int rating = 0;6. Что выведет switch
Проанализируйте программу на Java с оператором switch, в которой используется несколько меток case и ветка default. Определите, какая строка будет выведена в консоль при выполнении метода main. Выберите один правильный вариант результата из предложенных.
class Main {
public static void main(String[] args) {
int day = 6;
switch (day) {
case 5:
case 6: System.out.println("Выходной"); break;
default: System.out.println("Рабочий день");
}
}
}7. Сопоставь элементы switch и их роль
В этом задании по теме «Конструкция switch-case» в левой колонке расположены названия элементов конструкции, а в правой — их роли в управлении выполнением кода. Сопоставьте каждый термин слева с соответствующим описанием справа. Обратите внимание, что каждая пара «термин — роль» используется один раз, а варианты в правой колонке перемешаны.