swich-case на Java теория
http://study-java.ru/uroki-java/vyrazeniya-switch-i-case/
Переменная условия вводится единственный раз и проверяется на равенство с каждым из исходных значений (case). Как только значение переменной соответствует одному из исходных значений, выполняется тело блока кода, соответствующего данному case, и происходит выход из конструкции switch. В случае, если ни одно из значений не соответствует переменной, то выполняется блок default.
Пример использования конструкции switch-case:
```
int num = 2;
String numString;
switch (num) {
case 1:
numString = "Один";
break;
case 2:
numString = "Два";
break;
case 3:
numString = "Три";
break;
default:
numString = "Неизвестное число";
break;
}
System.out.println("Число " + num + " в виде строки: " + numString);
// Вывод:
// Число 2 в виде строки: Два
```
В данном примере, переменная ```num``` имеет значение 2, поэтому будет выполнено тело кода, соответствующее ```case 2```, а именно – присвоено значение ```"Два"``` переменной ```numString```. Так же в конструкции будет использован блок ```default```, если переменная не будет удовлетворять ни одному из значений.
Ключевое слово ```break``` используется для выхода из конструкции ```switch-case```. Без него, выполнение кода будет продолжаться и в другие блоки ```case```. Так как в данном примере не используется оператор ```break```, результатом будет ```Три```, так как это последнее значение в конструкции.
В конструкции ```switch-case``` также можно использовать оператор ```fall-through```, который позволяет выполнить несколько блоков кода при одном условии.
```
switch (num) {
case 1:
numString = "Один";
break;
case 2:
case 3:
numString = "Два или Три";
break;
default:
numString = "Неизвестное число";
break;
}
System.out.println("Число " + num + " в виде строки: " + numString);
// Вывод:
// Число 2 в виде строки: Два или Три
```
В этом случае, при условии переменной ```num = 2```, будет выполнено тело кода блока ```case 2```, а затем блок ```case 3```. Таким образом, переменной ```numString``` будет присвоено значение ```"Два или Три"```.
В качестве значений в конструкции ```switch-case``` могут выступать любые примитивные типы данных, а также объекты.
Также следует учитывать, что конструкция ```switch-case``` сильно ограничена в сравнении с условными операторами ```if-else```. В частности, в блоках ```case``` можно использовать только константы или литералы, а не условные выражения. Также нельзя использовать логические операторы, например, ```<``` или ```>```. Если необходимо описать более сложное условие, лучше использовать именно условные операторы.