Switch в Java | Синтаксис и примеры
Оператор switch используется для выполнения различных действий на основе разных условий. Оператор switch Java работает с байтовыми, короткими, char и int примитивными типами данных. Он также работает с перечисляемыми типами, классом String и несколькими специальными классами, которые обертывают некоторые примитивные типы: Character, Byte, Short и Integer.
Синтаксис:
switch(expression) {
case n:
code block
break;
case n:
code block
break;
default:
default code block
}
Выражение (условие) переключателя оценивается один раз, а значение выражения сравнивается со значениями каждого случая. Если есть совпадение, выполняется соответствующий блок кода. Если аргумент case case не найден, программа ищет необязательное предложение по умолчанию, и если оно найдено, передает управление этому предложению, выполняя связанные операторы. Необязательный оператор break, связанный с каждым ярлыком case, гарантирует, что программа выйдет из коммутатора после выполнения согласованного оператора и продолжит выполнение в операторе следующего коммутатора. Если разрыв пропущен, программа продолжает выполнение в следующем выражении в инструкции switch.
Пример:
class TestClass
{
public static void main (String[] args)
{
int inDay = 2;
String day;
switch (inDay) {
case 1: day = "Subday";
break;
case 2: day = "Monday";
break;
case 3: day = "Tuesday";
break;
case 4: day = "Wednesday";
break;
case 5: day = "Thursday";
break;
case 6: day = "Friday";
break;
case 7: day = "Saturday";
break;
default: day = "Invalid entry";
break;
}
System.out.println("Selected day is: " + day);
}
}
Вывод:
Selected day is: Monday
В приведенном выше случае inDay является параметром для переключения. Зависит от параметра переключателя, для строки дня присваивается соответствующее значение. Здесь inDay = 2, поэтому переключатель назначает день = «понедельник».
switch..case в строке

Операторы switch с примерами String были реализованы в Java SE 7, по крайней мере, через 16 лет после их первого запроса. Явная причина задержки не была предоставлена, но, скорее всего, это связано с производительностью.
class TestClass
{
public static void main (String[] args)
{
String inGrade = "A";
String message;
switch (inGrade) {
case "A+":
message = "Excellent !!";
break;
case "A":
message = "Very Good !!";
break;
case "B":
message = "Good !!";
break;
case "C":
message = "Passed !!";
break;
case "D":
message = "Failed !!";
break;
default: message = "Invalid entry";
break;
}
System.out.println(message);
}
}
Вывод:
Very Good !!
Коммутаторы на основе целых чисел могут быть оптимизированы для очень эффективного кода. Переключатели на основе другого типа данных могут быть скомпилированы только в ряд операторов if(). По этой причине C & C ++ разрешает только переключатели только для целочисленных типов.
