JavaScript: switch
Инструкция switch была придумана в качестве альтернативы для нескольких if. Обычно она используется когда нужно сравнить некоторое значение сразу с несколькими различными вариантами (другими значениями) и выполнить соответствующий фрагмент кода из предложенных вариантов.
Синтаксис switch:
switch (выражение) {
case выражение1:
// Этот фрагмент кода выполнится, если вычисленное значение выражения в скобках
// равно значению выражение1
break;
...
case выражениеN:
// Этот фрагмент кода выполнится, если вычисленное значение выражения в скобках
// равно значению выражениеN
break;
default:
// Этот фрагмент кода выполнится при отсутствии
// совпадений со значениями представленных вариантов
}
В круглых скобках, после ключевого слова switch, указывается выражение, значение которого будет последовательно (сверху вниз) сравниваться со значениями выражений, указанных после ключевых слов case. При сравнении значений используется оператор ===.
Если соответствие значений установлено – switch начинает выполняться от соответствующего case и далее, пока не встретится инструкция break (или до конца switch, если break отсутствует). Если соответствие значений не установлено – выполняется код, расположенный после ключевого слова default.
case и default называют вариантами switch.
Обратите внимание, что вариант default, не является обязательным. При этом его можно располагать в любом месте в теле switch, однако для удобства, его условились записывать последним.
Инструкция break выполняет немедленный выход из инструкции switch. Она может располагаться в каждом варианте, но не является обязательной. При отсутствии инструкции break в каком-либо варианте управление будет передано инструкциям, относящимся к следующему варианту.
Пример работы инструкции switch:
var x = 3;
switch (x) {
case 1:
document.write("x равен 1");
break;
case 2:
document.write("x равен 2");
break;
case 3:
document.write("x равен 3");
break;
default:
document.write("x > 3");
}
Попробовать »
На изображении ниже показан порядок выполнения:

Пример без инструкции break:
var x = 2;
switch (x) {
case 1:
document.write("x равен 1");
case 2:
document.write("x равен 2");
case 3:
document.write("x равен 3");
default:
document.write("x: " + x);
}
Попробовать »
Для выхода из switch может использоваться не только инструкция break, но также и инструкция return (если switch находится внутри функции) или continue (если switch находится внутри цикла).
Несколько вариантов можно ассоциировать с одним и тем же программным кодом:
var x = 3;
switch (x) {
case 1:
case 2:
case 3:
document.write("x равен 1, 2 или 3");
break;
case 7:
document.write("x равен 7");
break;
}
Попробовать »
Варианты case не обязательно должны записываться друг под другом, для удобства их можно расположить в ряд:
var x = 3;
switch (x) {
case 1: case 2: case 3:
document.write("x равен 1, 2 или 3");
break;
case 7:
document.write("x равен 7");
break;
}
Попробовать »
Возможность использовать выражения в case позволяет писать такой код:
var num = 30;
switch (true) {
case num == 0:
document.write("num: " + num);
break;
case num > 5 && num < 15:
document.write("num между 5 и 15");
break;
case num > 20:
document.write("num: " + num);
break;
}
С этой темой смотрят: