Конструкция switch-case

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

Тренажер по Java

switch-case в Java — это управляющая конструкция для выбора одной ветки из нескольких по значению выражения. Она удобна, когда вместо длинной цепочки if/else нужно обработать множество вариантов. В switch используются метки case, опциональная ветка default и, при необходимости, break, чтобы избежать «проваливания» в следующий case. В уроке: разберём синтаксис, типичные ошибки и примеры, как работает код. Это практический тренажер Java онлайн: задания, тесты и тренировка без регистрации.

  • Выбор ветки по значению
  • break и намеренный fall-through
  • default и группировка case
Список тем

1. Каркас switch-case

id: 40450_sw_01_replace_syntax

В данном задании представлен каркас конструкции 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);
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Где нужен break

id: 40450_sw_02_replace_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 сек.
Показать подсказку

3. Исправь проваливание в следующий case

id: 40450_sw_03_error_fallthrough

В этом фрагменте 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");
        }
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

4. Группировка case для одинакового результата

id: 40450_sw_04_select_fill_group_cases

Дополните фрагмент 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("Некорректный номер дня");
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

5. Собери switch в правильном порядке

id: 40450_sw_05_build_from_parts_order

Из предложенных строк соберите корректный фрагмент 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;
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

6. Что выведет switch

id: 40450_sw_06_predict_result_basic

Проанализируйте программу на 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 и их роль

id: 40450_sw_07_compare_terms

В этом задании по теме «Конструкция switch-case» в левой колонке расположены названия элементов конструкции, а в правой — их роли в управлении выполнением кода. Сопоставьте каждый термин слева с соответствующим описанием справа. Обратите внимание, что каждая пара «термин — роль» используется один раз, а варианты в правой колонке перемешаны.

Сопоставьте строки в правой(нижней) части с соответствующими строками в левой(верхней) по порядковому номеру
switch
case
default
break
fall-through
выражение switch
Ключевое слово, помечающее ветку, которая выполняется, если ни одна из меток case не подошла.
Ключевое слово, которое немедленно завершает выполнение текущей ветви switch и предотвращает переход к следующей ветви.
Выражение после ключевого слова switch, которое вычисляется один раз и сравнивается с константами в метках case.
Метка, с которой начинается одна из альтернативных ветвей внутри switch; срабатывает, когда значение совпадает с константой.
Ключевое слово, начинающее многоветвенную конструкцию выбора и объединяющее несколько альтернатив.
Поведение, при котором после выполнения одной ветви продолжается выполнение следующей без дополнительной проверки условия, если отсутствует break.
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру