Далее на странице...
Конструкция switch-case в JavaScript используется при построении нескольких условий одновременно и является хорошей альтернативой конструкции if-else.
Несколько условий одновременно - Конструкция if-else
Представим себе викторину - игру в ответы и вопросы, для реализации которой сначала воспользуемся уже знакомой конструкцией if-else.
Итак, требуется составить одновременно несколько условий.
<script type="text/javascript">
var five = prompt("Введите число от 1 до 5")
if (five == 1)
{
alert("Вы выиграли Автомобиль");
}
else if (five == 2)
{
alert("Вы выиграли Мотоцикл");
}
else if (five == 3)
{
alert("Вы выиграли Мотороллер");
}
else if (five == 4)
{
alert("Вы выиграли Велосипед");
}
else if (five == 5)
{
alert("Вы выиграли Самокат");
}
else
{
alert("Вы ошиблись при вводе");
}
</script>
Здесь при помощи конструкции if-else составлены несколько условий, при этом поочередно перебираются варианты ответа пользователя.
Есть альтернативный и в чем-то более удобный способ реализации этой же задачи. Использование конструкция switch-case.
Конструкция switch-case - СИНТАКСИС - Пример
Рассмотрим реализацию предыдущего примера при помощи конструкции switch-case. Ее синтаксис отличен от конструкции if-else.
switch(X) /* Работаем с объектом X*/
{
case 1: /* Если X = 1 */
alert("X равно 1"); /* Выполняем действие */
break;
case 2: /* Если X = 2 */
alert("X равно 2"); /* Выполняем действие */
break;
default: /* Если X не равен 1 или 2 */
alert("X НЕ равен 1 или 2"); /* Выполняем действие */
}
Теперь, зная синтаксис конструкции switch-case, вернемся к викторине из предыдущего примера.
<script type="text/javascript">
var five = prompt("Введите число от 1 до 5")
switch(parseInt(five)) /* parseInt конвертирует строку в число */
{
case 1: /* Если five равно 1*/
alert("Вы выиграли Автомобиль");
break; /* Заканчиваем весь ЦИКЛ условий, если это условие выполняется */
case 2:
alert("Вы выиграли Мотоцикл");
break;
case 3:
alert("Вы выиграли Мотороллер");
break;
case 4:
alert("Вы выиграли Велосипед");
break;
case 5:
alert("Вы выиграли Самокат");
break;
default:
alert("Вы не верно ввели число...");
}
</script>
Разберем этот пример, в котором использовалась конструкция switch-case.
-
После оператора switch в круглых скобках указываем переменную five, т.е. ту с которой работаем.
-
Далее в фигурных скобках располагаются блоки оператора case (т.е условия), каждый из которых содержит:
- предполагаемое значение переменной five;
- действие;
- оператор break, который, если условие выполнено, служит для прекращения дальнейшей работы с циклом условий.
-
Оператор default (и действие для него) НЕ ОБЯЗАТЕЛЕН, но может располагаться в конце - после всех блоков оператора case (т.е. в конце цикла условий) на тот случай, если ни одно из условий не выполняется.
Обратите внимание, что в этом примере метод prompt заносит строковое значение в переменную five. Поэтому далее это значение подвергается преобразованию в число при помощи функции parseInt (см. конвертация строк).