Почему выражение в JS
let bnm = [1,2,3,4,5,6,7,8,9,10,11,12,13]
for(var i = 0 ; i < bnm.length; i++) {
if (bnm[i] > 3 && bnm[i] < 10) {console.log(bnm[i])}
} // работает
а такое же выражение но с оператором || выдает все цифры в массиве
let bnm = [1,2,3,4,5,6,7,8,9,10,11,12,13]
for(var i = 0 ; i < bnm.length; i++) {
if (bnm[i] > 3 || bnm[i] < 10) {console.log(bnm[i])}
}
JavaScript
Логические операторы && и || JavaScript
Потому что любое число всегда или больше 2, или меньше 10 (или и то и то). Например 0 не больше 2, но меньше 10, поэтому условие всегда сработает. Знак ИЛИ требует истинности лишь одного операнда, а если будет И, тогда оба операнда должны быть истинны.
Андрей Сычев
все верно..
a=1;
if (a > 3 || a < 10) {console.log(a);}
выведет а, так как первый не сработает, так как a<3, а второе сработает так как a<10Т.к. второе условие - это все известные числа.
Нужно изучать булеву алгебру.
Нужно изучать булеву алгебру.
&& — и.
|| — или.
Ты приходишь на рынок.
— Дайте мне больше двух яблок И ПРИ ЭТОМ меньше десяти.
Тебе дадут 3-9 яблок.
— Дайте мне больше двух яблок ИЛИ меньше десяти (на ваш выбор).
Тебе подгонят 40-тонную фуру («больше двух») ИЛИ дадут 1-9 яблок («меньше десяти»). На усмотрение продавца.
|| — или.
Ты приходишь на рынок.
— Дайте мне больше двух яблок И ПРИ ЭТОМ меньше десяти.
Тебе дадут 3-9 яблок.
— Дайте мне больше двух яблок ИЛИ меньше десяти (на ваш выбор).
Тебе подгонят 40-тонную фуру («больше двух») ИЛИ дадут 1-9 яблок («меньше десяти»). На усмотрение продавца.
Потому что операторы && и || это не одно и тоже, они работают по разному, и поэтому результат разный.
Результат оператора && при разных операндах таков:
true && true = true;
true && false = false;
false && true = false;
false && false = false;
Итого: Оператор && возвращает true если оба операнда являются true-значениями, в других случаях это false.
Результат оператора || при разных операндах таков:
true || true = true;
true || false = true;
false || true = true;
false || false = false;
Итого: Оператор || возвращает true если хотя бы оба один из операндов являются true-значениями, в других случаях это false.
Из-за того что эти операторы работают по разному, получается и разный результат.
Результат оператора && при разных операндах таков:
true && true = true;
true && false = false;
false && true = false;
false && false = false;
Итого: Оператор && возвращает true если оба операнда являются true-значениями, в других случаях это false.
Результат оператора || при разных операндах таков:
true || true = true;
true || false = true;
false || true = true;
false || false = false;
Итого: Оператор || возвращает true если хотя бы оба один из операндов являются true-значениями, в других случаях это false.
Из-за того что эти операторы работают по разному, получается и разный результат.
Похожие вопросы
- Можно ли в javascript не использовать условный оператор '?' и полностью заменить его if`ами?
- Есть ли аналоги JavaScript?
- С чего начать учить JavaScript?
- Подскажите книги для изучения javascript? Хочу начать изучать веб программирование javascript подойтет для начала?
- Зачем нужен prototype в JavaScript?
- Тяжело ли выучить JavaScript?
- Как создать квадрат через JavaScript?
- Смотрел я тут учебный курс Евгения Попова по javascript. Удивил он (Попов) в паре мест...
- Имеет ли смысл изучать JavaScript если я полный ноль в веб программировании?
- Как установить JavaScript на ноутбук Asus ?