Codebra
28 января 2026 в 11:56

Урок 31. Условные инструкции: инструкция switch

Иногда все ветви зависят от одного и того же значения, поэтому использовать if неудобно и нерационально. Именно для таких ситуаций и нужна инструкция switch.
📝

Внимание! На этой странице вы найдете материал урока из архивного курса по JavaScript. Курс был написан в 2015 и по-прежнему актуален для начинающих веб-разработчиков.

Теоретический материал сохранен в исходном виде, а практические задания с автоматической проверкой вынесены в отдельные роадмапы.

Полный список уроков доступен по тегу Архивный курс по JavaScript и на странице первого урока.

Иногда все ветви зависят от одного и того же значения, поэтому использовать if неудобно и нерационально. Именно для таких ситуаций и нужна инструкция switch. Далее пример ее использования:

switch (a) {
    case 1: /* Если a === 1 */
        /* инструкции */
        break; /* Разрыв / выход из switch */
    case 2: /* Если a === 2 */
        /* инструкции */
        break; /* Разрыв / выход из switch */
    default: /* Если предыдущие условия не выполнились */
        /* инструкции */
        break; /* Разрыв / выход из switch */
}

Теперь разберемся с этим кодом. Когда выполняется инструкция switch, то она вычисляет значение, а затем ищет case с таким же значением. Причем проверяет на идентичность (===), а не на равенство. Если нужный case найден, то выполнится этот case. Если нужный case не найден, то выполняется ветка default. Обязательно нужно писать break в конце каждого блока case, иначе switch выполнит этот блок case и продолжит выполнять дальше, пока не будет найден конец. Чтобы понять это, рассмотрим пример:

var a = 'Привет';
switch (a) {
    case 'Привет':
        document.write('И тебе привет <br>');
    case 'Пока':
        document.write('И тебе пока <br>');
    default:
        document.write('Что? <br>');
}

Нужно было вывести только И тебе привет, а вывело все фразы. А теперь добавим break и проверим результат:

var a = 'Привет';
switch (a) {
    case 'Привет':
        document.write('И тебе привет <br>');
        break;
    case 'Пока':
        document.write('И тебе пока <br>');
        break;
    default:
        document.write('Что? <br>');
        break;
}

Как лучше сделать, если значение разное, но выводить все равно одно и то же? Пример:

var a = 'Привет';
switch (a) {
    case 'Привет':
    case 'Приветик':
        document.write('И тебе привет <br>');
        break;
    case 'Пока':
        document.write('И тебе пока <br>');
        break;
    default:
        document.write('Что? <br>');
        break;
}

Теперь перепишем нашу последнюю конструкцию на if:

var a = 'Привет';
if (a === 'Привет' || a === 'Приветик') {
    document.write('И тебе привет <br>');
}
else if (a === 'Пока') {
    document.write('И тебе пока <br>');
}
else {
    document.write('Что? <br>');
}
📝

Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу JavaScript.