Switch case в Javascript
Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье мы разобрали условный оператор в javascript. В данной статье я бы хотел поговорить об операторе switch case в javascript. Данный оператор, по сути, является оператором выбора. Синтаксис его следующий:
switch(переменная) {
case '1 значение переменной': {
//блок операторов, который выполняется при выборе 1 значения переменной
break;
}
case '2 значение переменной': {
//блок операторов, который выполняется при выборе 2 значения переменной
break;
}
case '3 значение переменной': {
//блок операторов, который выполняется при выборе 3 значения переменной
break;
}
default: {
//блок операторов, который выполняется по умолчанию
}
}
Смысл здесь простой: сначала конструкцией switch(переменная) задаётся переменная, от значения которой зависит, что будет выполняться. Если у нас значение переменной равно такому-то значению — выполнять данный кусок кода, если другому значению — выполнять другой кусок кода. Обратите внимание, что после блока операторов в каждом case стоит break. Если его не поставить, то код продолжит выполняться и пойдёт дальше (т.е. будут проверяться другие case), что редко бывает нужным. Если значение переменной не соответствует ни одному case, то сработает блок default, т.е. что-то по умолчанию.
Давайте теперь придумаем какой-нибудь пример использования данной конструкции. Помните в статье, посвященной циклам в Javascript, мы разобрали пример факториала числа на примере 3 циклов. Давайте теперь реализуем подобие меню. При нажатии на "1" будет выполняться итерационный цикл, на "2" — цикл с предусловием, на "3" — цикл с постусловием. Давайте напишем код:
<html>
<meta charset="utf-8"/>
<head><title>Switch case в JavaScript</title></head>
<script type="text/javascript">
function fact_iter(a) {
var result = 1;
for (i = 1; i <= a; i++) {result = result * i;}
return result;
}
function fact_pred(a) {
var result = 1;
var i = 1;
while (i <= a) {
result = result * i;
i++;
}
return result;
}
function fact_post(a) {
var result = 1;
var i = 1;
do {
result = result * i;
i++;
}
while (i <= a)
return result;
}
var a = 5; //число факториал, которого будем искать
var param = prompt("Каким способом посчитать факториал:\n1 - Итерационный цикл\n2 - Цикл с предсуловием\n3 - Цикл с постусловием","Выберите номер пункта...");
switch (param) {
case "1": {
document.write("Факториал числа равен (итерационный метод) "+fact_iter(a));
break;
}
case "2": {
document.write("Факториал числа равен (с предусловием) "+fact_pred(a));
break;
}
case "3": {
document.write("Факториал числа равен (с постусловием) "+fact_post(a));
break;
}
default: {
document.write("Вы выбрали пункт, которого нет");
break;
}
}
</script>
</body>
</html>
Такой вот большой пример у нас получился (заодно вспомнили и циклы, и функции). Первые 3 функции просто возвращают факториал числа, с использованием определенного цикла. Затем мы у пользователя спрашиваем, каким способом посчитать факториал числа и результат сохраняем в переменную param. Символ "\n" означает переход на новую строку. Обратите внимание, что варианты выбора стоят в кавычках (case "1"), так как переменная param имеет строковый тип (нужно сравнивать строку со строкой). Если набрать что-то другое (а не 1,2 или 3), то сработает оператор default.
По идее, всё это можно было заменить условным оператором, но там было бы много условий. Использование оператора switch case в javascript делает код более наглядным и лаконичным.
В данной статье вы узнали об операторе switch case в javascript.
Домашнее задание: обязательно наберите данный пример и проверьте работоспособность. Также попробуйте убрать везде операторы break и посмотрите что получится.
На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.




