Конструкция switch заменяет собой сразу несколько if.
Она представляет собой более наглядный способ сравнить выражение сразу с несколькими вариантами.
Выглядит она так:
x проверяется на строгое равенство первому значению value1, затем второму value2 и так далее.case и далее, до ближайшего break (или до конца switch).case не совпал – выполняется (если есть) вариант default.При этом case называют вариантами switch.
Пример использования switch (сработавший код выделен):
Здесь оператор switch последовательно сравнит a со всеми вариантами из case.
Сначала 3, затем – так как нет совпадения – 4. Совпадение найдено, будет выполнен этот вариант, со строки alert('В точку!') и далее, до ближайшего break, который прервёт выполнение.
Если break нет, то выполнение пойдёт ниже по следующим case, при этом остальные проверки игнорируются.
Пример без break:
В примере выше последовательно выполнятся три alert:
В case могут быть любые выражения, в том числе включающие в себя переменные и функции.
Например:
Несколько значений case можно группировать.
В примере ниже case 3 и case 5 выполняют один и тот же код:
При case 3 выполнение идёт со строки (*), при case 5 – со строки (**).
Следующий пример принимает значение от посетителя.
Что оно выведет при вводе числа 0? Числа 1? 2? 3?
Подумайте, выпишите свои ответы, исходя из текущего понимания работы switch и потом читайте дальше…
0 выполнится первый alert, далее выполнение продолжится вниз до первого break и выведет второй alert('Два'). Итого, два вывода alert.1 произойдёт то же самое.2, switch перейдет к case '2', и сработает единственный alert('Два').3, switch перейдет на default. Это потому, что prompt возвращает строку '3', а не число. Типы разные. Оператор switch предполагает строгое равенство ===, так что совпадения не будет.