Использование и (&&) и или (||) вместе в одном и том же условии в JavaScript
Мне интересно, как объединить и (&&) с или (||) в JavaScript.
Я хочу проверить, равны ли оба a и b 1 или оба c и d равны 1.
Я пробовал это:
if (a == 1 && b == 1 || c == 1 && д == 1) { //Сделай что-нибудь }
Но это не работает.
Как правильно написать это условие?
- JavaScript
&&
предшествует ||
. ==
предшествует им обоим.
Из вашего минимального примера я не понимаю, почему он не дает желаемого эффекта. Какие типы значений есть у a–d? В JavaScript может происходить неочевидное приведение типов. Возможно, попробуйте сравнить с ===
или явно преобразовать в числа.
Замечание: многие инструменты lint для C-подобных языков рекомендуют заключать круглые скобки для удобства чтения при смешивании логических операторов.
Приоритет оператора можно переопределить, поместив выражение в круглые скобки.
if ((+a == 1 && +b == 1) || (+c == 1 && +d == 1)) // Используйте скобки для их группировки { // ваш код }
Это предотвратит такие случаи, как if(0&&0 || 1&&1)
.
Что ж, теперь, когда я закончил объяснять всем остальным (кроме Дэвида), почему их ответы неверны, позвольте мне дать им такой же шанс побеспокоить меня.
Ваш существующий код, как показано, уже должен делать то, что вы , кажется, описываете. Но возможно ли, что когда вы говорите:
«Я хочу проверить, равны ли 1 оба параметра a и b или равны ли 1 оба параметра c и d.»
…использование вами слова «любой» означает, что вы хотите проверить, верно ли одно и только одно из следующих условий:
- оба a и b равны 1, но c и d не оба оба 1
- и c, и d равны 1, но a и b не оба равны 1 9 на самом деле является побитовым оператором, но здесь он сработает, так как все операнды, которые вы будете использовать с ним, являются логическими. ) 4
поместите дополнительные скобки, чтобы различать и n или условия
if ((a == 1 && b == 1) || (c == 1 && d == 1))
2Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя адрес электронной почты и парольОпубликовать как гость
Электронная почтаОбязательно, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
JavaScript — логическая логика
JavaScript — логическая логикаСм. раздел 5G книги.
Эта страница переведена на французский язык.
Булева логика используется в большинстве языков программирования. включая JavaScript. Очень полезно знать хотя бы немного об этом. В JavaScript, он вам в основном нужен в операторах if().
Это всего лишь краткое и грязное объяснение, написанное для новых программистов. В Кроме того, он полностью основан на использовании булевой логики в JavaScript.
Сначала я обсуждаю основную теорию, затем ввожу И, ИЛИ и НЕ в JavaScript. Затем я представляю булев генератор с помощью которого вы можете создавать свои собственные логические операторы и смотреть, как они оцениваются.
После этого я объясню, когда JavaScript делает переменную ложной и, наконец, как узнать, существует ли объект. Когда ты все это понял, ты может работать с булевой логикой в JavaScript.Основная теория
В булевой логике оператор может иметь два значения:
true
илиfalse
. Когда используя булеву логику в философии, утверждение может быть предложением, напримерСегодня идет дождь.
В более приземленных приложениях, таких как JavaScript, выражение выглядит примерно так:
х == 4
Оба утверждения могут быть как истинными, так и ложными. При написании программы часто бывает необходимо чтобы увидеть, является ли утверждение истинным или ложным. Обычно это делает специалист оператор если(). Если оператор
верно, то сделайте что-нибудь:если (х==4) { сделай что-нибудь }
Все это неудивительно. Булева логика, однако, также предлагает возможности для оценки всю строку утверждений и посмотреть, является ли вся строка истинной или ложной. Нравится:
Сегодня идет дождь И мои ноги промокают
В булевой логике это более длинное утверждение истинно, если
сегодня идет дождь
верно Имои ноги промокли
верно.Сегодня идет дождь ИЛИ у меня промокли ноги
В булевой логике это утверждение верно, если
Это также очень полезно при написании программ. Например, предположим, что вы хотите что-то сделать, если x==4 ИЛИ y==1. Тогда вы пишете:сегодня идет дождь
верно ИЛИ есливаши ноги промокли
верно true ИЛИ, если оба утверждения верны.если (х==4 || у==1) { сделай что-нибудь }
Утверждение
(x==4 || y==1)
верно
, когда x равно 4 ИЛИ y равно 1.И, ИЛИ и НЕ
Для целей JavaScript вам необходимо знать И, ИЛИ и НЕ:
- И (
&&
): Истинно, когда оба элемента истинны.
Пример: (x==4 && y==1). - ИЛИ (
||
): Истинно, если истинно хотя бы один из элементов.
Пример: (x==4 || y==1). - NOT (
!
): переключает утверждение с истинного на ложное или с ложного на истинное.
Пример: (x==4 || !(y==1)). Этот пример верен, если x равно 4 ИЛИ y НЕ равно 1.
Булева логика также содержит оператор XOR, который верен, когда ровно один утверждение верно (но не оба). JavaScript не поддерживает логическое XOR.
Когда вы используете только два оператора, все очень просто. Это становится сложнее, если вы хотите используйте три или более операторов, например:
если (x==4 && (!(y==1) || z==0) { сделай что-нибудь }
Как и в математике, вычисляется бит, находящийся в скобках
()
первый. Таким образом, этот пример верен, и код выполняется, если x равно 4 И (y НЕ равно 1 ИЛИ z равно 0 ИЛИ и то, и другое).Попробуйте
На первый взгляд это кажется ужасно сложным. Я мог бы продолжать писать о том, как Булева логика работает, но лучше попробовать самому.
В таблице ниже вы видите три утверждения, X, Y и Z. Все они могут быть как истинными, так и ложными. Заполните И / ИЛИ, НЕ, где скобки и значения X, Y и Z, затем нажмите Boole() , чтобы увидеть, как ваше утверждение оценивает.
Поиграйте с ним, пока не начнете понимать, что это такое. Позже вы можете попытаться сделать прогноз до того, как выпадет 9.0033 Буль() .
Проверка переменной
Выше мы видели, что мы можем использовать булеву логику в операторе типа
.если (x==4 && (!(y==1) || z==0) { сделай что-нибудь }
Второй способ использования булевой логики — посмотреть, существует что-то или нет. Например
если (!х) { сделай что-нибудь }
В этом примере код выполняется, если
x
НЕ существует (x=false
).
х неверно- , если x равно нулю (
x=0
). Таким образом, если результат какого-либо вычисления состоит в том, что x равно нулю, x является ложным, и код выполняется. - , если x — пустая строка (
x=''
). Итак, если x — строка, но она была создана пусто по некоторым вычислениям, x ложно, и код выполняется. - , если вы сделали x false (
x=false
).
- И (