Оператор switch case в Java
Оператор switch case определяет, равно ли значение переменной одному из значений в ряду значений. Каждое значение называется ветвью.
Синтаксис
Синтаксис оператора switch case выглядит следующим образом:

Оператор switch case имеет следующие правила:
Тип переменной в операторе switch может быть: byte, short, int или char. Начиная с Java SE 7 switch поддерживает тип String, а метка case должна быть строковой константой или литералом.
Оператор switch может иметь несколько операторов case. После каждого case указывается значение для сравнения и двоеточие.
Тип данных значения в операторе case должен совпадать с типом данных переменной, и это может быть только константа или литеральная константа.
Когда значение переменной равно значению оператора case, операторы после оператора case начинают выполняться до появления оператора break, после чего происходит выход из оператора switch.
При обнаружении оператора break выполнение оператора switch завершается. Программа переходит к оператору после оператора switch для выполнения. Оператор case не обязательно должен содержать оператор break. Если оператор break отсутствует, программа продолжит выполнять следующий оператор case до появления оператора break.
Оператор switch может содержать ветвь default, которая обычно является последней ветвью оператора switch (она может быть размещена в любом месте, но рекомендуется последней). Ветвь default выполняется, когда ни одно значение оператора case не равно значению переменной. Ветви default не нужен оператор break.
Когда выполняется switch case, он всегда сначала сопоставляется. Если сопоставление успешно, он возвращает значение текущего case, а затем определяет, продолжать вывод или выйти из проверки, в зависимости от наличия break.
Пример
Код файла Test.java:
Результат компиляции и выполнения приведенного выше кода выглядит следующим образом:
良好 你的等级是 C
Если в блоке case нет оператора break, JVM не будет последовательно выводить возвращаемое значение, соответствующее каждому case; вместо этого она продолжает сопоставление, и если сопоставление не удалось, выполняется ветка default.
Код файла Test.java:
Результат компиляции и выполнения приведенного выше кода выглядит следующим образом:
default
Если в блоке case нет оператора break, то после успешного сопоставления, начиная с текущего case, будут выведены значения всех последующих case.
Код файла Test.java:
Результат компиляции и выполнения приведенного выше кода выглядит следующим образом:
1 2 default
Если в текущем сопоставленном блоке case нет оператора break, то начиная с текущего case будут выведены значения всех последующих case. Если в последующем блоке case есть оператор break, произойдёт выход из проверки.
Код файла Test.java:
Результат компиляции и выполнения приведенного выше кода выглядит следующим образом:
1 2 3Другие расширения