Оператор switch ... case является альтернативой оператору if … else if … else, который делает почти то же самое. Оператор switch … case проверяет переменную или выражение по ряду условий, пока не найдет совпадение, а затем выполняет блок кода, соответствующий этому совпадению. Это синтаксис:

switch(x){
    case value1:
        // Код, который будет выполнен, если x === value1
        break;
    case value2:
        // Код, который будет выполнен, если x === value2
        break;
    ...
    default:
        // Код, который будет выполнен, если x отличается от всех значений
}

Рассмотрим следующий пример, в котором отображается название дня недели.

var d = new Date();
	
switch(d.getDay()) {
	case 0:
		alert("Today is Sunday.");
		break;
	case 1:
		alert("Сегодня понедельник.");
		break;
	case 2:
		alert("Сегодня вторник.");
		break;
	case 3:
		alert("Сегодня среда.");
		break;
	case 4:
		alert("Today is Thursday.");
		break;
	case 5:
		alert("Сегодня пятница.");
		break;
	case 6:
		alert("Сегодня суббота.");
		break;   
	default:
		alert("Информация о сегодняшнем дне недоступна.");
		break;
}

Метод getDay() возвращает день недели в виде числа от 0 до 6, где 0 представляет воскресенье. Подробнее см. Руководство по работе с датами и временем в JavaScript, чтобы узнать больше об этих методах.

В операторе switch…case значение выражения или переменной сравнивается со значением case с помощью оператора строгого равенства (===). Это означает, что если x = "0", это не соответствует case 0:, потому что их типы данных не равны.

У оператора switch … case есть существенное отличиет от оператора if … else. Оператор switch выполняется построчно (то есть оператор за оператором), и как только JavaScript находит case, который оценивается как true, он не только выполняет код, соответствующий этому предложению case, но также выполняет все последующие case до конца автоматически.

Чтобы предотвратить это, вы должны включать оператор break после каждого case (как вы можете видеть в приведенном выше примере). Оператор break указывает интерпретатору JavaScript выйти из блока оператора switch … case после выполнения кода, связанного с первым истинным условием.

Однако оператор break не требуется для последнего case, т.е. default. Хотя, это хорошая практика программирования — завершать последнее условие. Это предотвращает возможную ошибку программирования позже, если к оператору switch будет добавлен другой оператор case.

Условие default не обязательно должно быть последним, которое появляется в операторе switch. Вот пример, где default не является последним условием.

var d = new Date();

switch(d.getDay()) {
    default: 
        alert("Ждем выходных.");
        break;
    case 6:
        alert("Today is Saturday.");
        break; 
    case 0:
        alert("Сегодня воскресенье.");
}

Совместное использование нескольких Cases

Каждое значение должно быть уникальным в инструкции switch, но при этом несколько сases могут использовать одно и то же действие, как показано здесь:

var d = new Date();

switch(d.getDay()) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        alert("It is a weekday.");
        break; 
    case 0:
    case 6:
        alert("Это выходной день.");
        break;
    default: 
        alert("Enjoy every day of your life.");
}

Похожие посты

Руководство по сортировке массивов в JavaScript

Сортировка — обычная задача при работе с массивами. Она будет использоваться, например, если вы захотите отобразить названия городов или регионов в алфавитном порядке. JavaScript массив (array) имеет встроенный метод sort() для сортировки элементов массива в алфавитном порядке. Следующий пример демонстрирует, как это работает: Реверсирование массива Вы можете использовать метод reverse(), чтобы изменить порядок элементов массива…

Руководство по массивам в JavaScript

Массивы — это сложные переменные, которые позволяют нам хранить группы значений под одним именем переменной. Массивы JavaScript могут хранить любое допустимое значение, включая строки, числа, объекты, функции и даже другие массивы, что позволяет создавать более сложные структуры данных, такие как массив объектов или массив массивов. Предположим, вы хотите сохранить название цветов в своем коде JavaScript….

Руководство по работе с атрибутами DOM в JavaScript

Атрибуты — это специальные слова, используемые внутри начального тега HTML-элемента для управления поведением тега или предоставления дополнительной информации о теге. JavaScript предоставляет несколько методов для добавления, удаления или изменения атрибутов HTML-элемента. В этом разделе мы узнаем об этих методах подробно. Получение значения атрибута элемента Метод getAttribute() используется для получения текущего значения атрибута элемента. Если указанный…

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.