В некоторых ситуациях вариантов развития событий может быть довольно много, и слишком многословно было бы перечислять их с помощью if — else if — else if — … — else. В таком случае используют оператор множественного выбора switch-case.
Синтаксис:
switch (выражение) {
case значение1:
// действия, выполняемые, если выражение равно значению 1
break;
case значение2:
// действия, выполняемые, если выражение равно значению 2
break;
default:
// действия, выполняемые, если выражение
// не равно ни одному из представленных значений
}
Пример:
public static void main(String[] args) {
say(1);
say(4);
say(9);
}
public static void say(int n) {
switch (n) {
case 0:
System.out.println('й');
break;
case 1:
System.out.println('ц');
break;
case 2:
System.out.println('у');
break;
case 3:
System.out.println('к');
break;
case 4:
System.out.println('е');
break;
default:
System.out.println('ы');
}
Вывод:
ц е ы
Вы, наверное, обратили внимание, что буквы записаны в одинарных кавычках. Один знак (буква, цифра, знак препинпния и т. п.), записанный в одинарных кавычках, — это выражение типа char. Например, в коде char firstLetter = 'a'; переменная firstLetter хранит букву a.
Оператор break внутри switch-case используется для выхода из множественного выбора. Код в switch выполняется от подходящей метки case до ближайшего break либо до конца switch (закрывающей фигурной скобки).
switch (n) {
case 0:
System.out.println("Zero");
break;
case 1:
System.out.println("One");
break;
case 2:
case 3:
case 4:
System.out.println("2…4");
break;
default:
System.out.println("5+"); // ну, или отрицательно
}