Иногда может быть нужно составить какое-то сложное условие.
Для этого существуют операторы && (логическое И) и || (логическое ИЛИ).
Логическое И
Логическое И позволяет задать одновременность
условий. В следующем примере, если переменная
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('неверно');
}