Условные операторы If и Switch

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

Реализовать все это позволяют условные операторы.

Условные операторы используются для выполнения определенных действий в зависимости от заданных условий.

В JavaScript имеются следующие условные операторы:

  • Оператор if используется для определения блока кода, который будет выполняться, если заданное условие соблюдается (возвращает true)
  • Оператор else используется для определения блока кода, который будет выполняться, если то же условие не соблюдается (возвращает false)
  • Оператор else if используется для определения нового условия, если первое условие не соблюдается (возвращает false)
  • Оператор switch определяет несколько альтернативных блоков кода

Оператор if

Оператор if используется для определения блока JavaScript кода, который будет выполняться, если заданное условие соблюдается (возвращает true).

Синтаксис:


if (условие) {
   блок кода, выполняемый если условие возвращает true
}

Внимание! Ключевое слово if пишется в нижнем регистре. Использование больших букв (If или IF) приведет к ошибке JavaScript.

Сформируем строку приветствия "Добрый день", если время меньше 18:00:


if (hour < 18) {
    greeting = "Добрый день";
}

Оператор else

Оператор else является частью и продолжением оператора if и используется для определения блока JavaScript кода, который будет выполняться, если заданное условие не соблюдается (возвращает false).

Синтаксис:


if (условие) {
   блок кода, выполняемый если условие возвращает true
} else {
   блок кода, выполняемый если условие возвращает false
}

Если время меньше 18:00, сформируем строку приветствия "Добрый день", в обратном случае сформируем строку приветствия "Добрый вечер":


if (hour < 18) {
    greeting = "Добрый день";
} else {
    greeting = "Добрый вечер";
} 

Оператор else if

Оператор else if является частью и продолжением оператора if и используется для определения нового условия, если первое условие не соблюдается (возвращает false).

Синтаксис:


if (условие1) {
   блок кода, выполняемый если условие1 возвращает true
} else if (условие2) {
   блок кода, выполняемый если условие1 возвращает false, а условие2 true
} else {
   блок кода, выполняемый если условие1 и условие2 возвращают false
}

Если время меньше 10:00, сформируем строку приветствия "Доброе утро", если нет, но при это меньше 20:00, сформируем строку приветствия "Добрый день", в обратном случае сформируем строку приветствия "Добрый вечер":


if (time < 10) {
    greeting = "Доброе утро";
} else if (time 

Оператор switch

Оператор switch используется для выполнения различных действий в зависимости от различных условий.

Оператор switch используется для сравнения одного значения с множеством других и выбора соответствующего блока кода для выполнения.

Синтаксис:


switch(выражение) {
   case n:
     блок кода
     break;
   case n1:
     блок кода
     break;
   default:
     блок кода
}

Вот как это работает:

  • Сначала вычисляется выражение в операторе switch.
  • Затем его значение сравнивается со значениями каждого оператора case.
  • Если найдено совпадение, то выполняется соответствующий блок кода.

Пример:
Метод getDay() объекта Date возвращает номер дня недели в диапазоне от 0 до 6. Воскресенье=0, Понедельник=1, Вторник=2 и т. д. Мы используем номер дня недели, чтобы определить его имя:


switch (new Date().getDay()) {
    case 0:
        day = "Воскресенье";
        break;
    case 1:
        day = "Понедельник";
         break;
    case 2:
        day = "Вторник";
         break;
    case 3:
        day = "Среда";
         break;
    case 4:
        day = "Четверг";
         break;
    case 5:
        day = "Пятница";
         break;
    case 6:
        day = "Суббота";
}

Ключевое слово break

Когда совпадение найдено, и работа сделана, приходит время прекратить проверку, так как в ней больше нет необходимости. Для этого и существует ключевое слово break.

Когда интерпретатор JavaScript достигает ключевое слово break, он прерывает выполнение блока оператора switch.

Ключевое слово break значительно экономит время выполнения, так как весь код блока оператора switch, расположенный после него, игнорируется.

В последнем блоке case использовать ключевое слова break не нужно. Этот блок прекратит работу оператора switch в любом случае.

Ключевое слово default

Ключевое слово default определяет блок кода, который выполняется в том случае, если ни одно из условий не совпало.

Пример:
Метод getDay() объекта Date возвращает номер дня недели в диапазоне от 0 до 6. Если сегодня ни Воскресенье (0), ни Суббота (6), то возвращается сообщение по умолчанию:


switch (new Date().getDay()) {
    case 6:
        text = "Сегодня суббота";
        break; 
    case 0:
        text = "Сегодня воскресенье";
        break; 
    default: 
        text = "Будем ждать выходных";
}

Блок выбора по условию default не обязательно должен быть последним в блоке оператора switch:


switch (new Date().getDay()) {
    default: 
        text = "Будем ждать выходных";
        break;
    case 6:
        text = "Сегодня суббота";
        break; 
    case 0:
        text = "Сегодня воскресенье";
}

Если блок выбора по условию default не последний в операторе switch, то его нужно заканчивать ключевым словом break.

Общие блоки кода

Иногда возникает необходимость по разным условиям использовать один и тот же код.

В следующем примере условие 4 и 5 определяют общий блок кода, а 0 и 6 определяют другой общий блок кода:


switch (new Date().getDay()) {
    case 4:
    case 5:
        text = "Скоро выходные";
        break; 
    case 0:
    case 6:
        text = "Сегодня выходной";
        break;
    default: 
        text = "Будем ждать выходных";
}