Сложные условия в if-else в JavaScript

Иногда может быть нужно составить какое-то сложное условие.

Для этого существуют операторы && (логическое И) и || (логическое ИЛИ).

Логическое И

Логическое И позволяет задать одновременность условий. В следующем примере, если переменная num больше нуля и одновременно меньше 10, только тогда выведется 'верно':

let num = 3; if (num > 0 && num < 10) { alert('верно'); } else { alert('неверно'); }

Условия могут налагаться не на одну переменную, а на разные. В следующем примере, если переменная num1 равна 2 и одновременно переменная num1 равна 3, только тогда выведется 'верно':

let num1 = 2; let num2 = 3; if (num1 == 2 && num2 == 3) { alert('верно'); } else { alert('неверно'); }

Если хотя бы одно из условий будет нарушено - то выведется 'неверно'.

Если переменная num больше нуля и меньше 5, то выведите на экран слово 'верно', иначе выведите слово 'неверно'.

Если переменная num больше или равна 10 и меньше или равна 20, то выведите на экран слово 'верно', иначе выведите слово 'неверно'.

Если переменная num1 равна или меньше 1, а переменная num2 больше или равна 3, то выведите на экран слово 'верно', иначе выведите слово 'неверно'.

Логическое ИЛИ

Логическое ИЛИ требует выполнения хотя бы одного условия.

В следующем примере, если переменная num1 больше 0 или переменная num2 больше 0, то выведется 'верно' (достаточно выполнения хотя бы одного из условий):

let num1 = 10; let num2 = -5; if (num1 > 0 || num2 > 0) { alert('верно'); // выведет 'верно' } else { alert('неверно'); }

Не запуская код определите, что выведется на экран:

let num1 = -10; let num2 = -10; if (num1 >= 0 || num2 >= 0) { alert('верно'); } else { alert('неверно'); }

Не запуская код определите, что выведется на экран:

let num1 = 0; let num2 = 0; if (num1 >= 0 || num2 >= 0) { alert('верно'); } else { alert('неверно'); }

Не запуская код определите, что выведется на экран:

let num1 = 0; let num2 = 5; if (num1 >= 0 || num2 >= 0) { alert('верно'); } else { alert('неверно'); }

Не запуская код определите, что выведется на экран:

let num1 = 5; let num2 = 5; if (num1 >= 0 || num2 >= 0) { alert('верно'); } else { alert('неверно'); }

Не запуская код определите, что выведется на экран:

let num1 = -5; let num2 = 15; if (num1 >= 0 || num2 >= 0) { alert('верно'); } else { alert('неверно'); }

Не запуская код определите, что выведется на экран:

let num = 1; if (num == 0 || num == 1) { alert('верно'); } else { alert('неверно'); }

Не запуская код определите, что выведется на экран:

let num = 2; if (num == 0 || num == 1) { alert('верно'); } else { alert('неверно'); }

Не запуская код определите, что выведется на экран:

let num = 2; if (num == 0 || num == 1 || num == 2) { alert('верно'); } else { alert('неверно'); }

Приоритет операций сравнения

Операция && имеет приоритет над ||.

В следующем примере выведется 'верно', если переменная num от 0 до 5 ИЛИ от 10 до 20:

let num = 3; if (num > 0 && num < 5 || num > 10 && num < 20) { alert('верно'); } else { alert('неверно'); }

Группировка условий

Хотя операция && и имеет приоритет над ||, часто удобнее использовать группирующие круглые скобки, чтобы явно показать приоритет операций:

let num = 3; if ( (num > 0 && num < 5) || (num > 10 && num < 20) ) { alert('верно'); } else { alert('неверно'); }

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

В приведенном ниже коде укажите приоритет операций в явном виде:

let num = 3; if (num > 5 && num < 10 || num == 20) { alert('верно'); } else { alert('неверно'); }

В приведенном ниже коде укажите приоритет операций в явном виде:

let num = 3; if (num > 5 || num > 0 && num < 3) { alert('верно'); } else { alert('неверно'); }

В приведенном ниже коде укажите приоритет операций в явном виде:

let num = 3; if (num == 9 || num > 10 && num < 20 || num > 20 && num < 30) { alert('верно'); } else { alert('неверно'); }