Or and js: Логическое ИЛИ (||) — JavaScript

Использование и (&&) и или (||) вместе в одном и том же условии в JavaScript

Мне интересно, как объединить и (&&) с или (||) в JavaScript.

Я хочу проверить, равны ли оба a и b 1 или оба c и d равны 1.

Я пробовал это:

 if (a == 1 && b == 1 || c == 1 && д == 1)
{
    //Сделай что-нибудь
}
 

Но это не работает.

Как правильно написать это условие?

  • JavaScript
5

&& предшествует || . == предшествует им обоим.

Из вашего минимального примера я не понимаю, почему он не дает желаемого эффекта. Какие типы значений есть у a–d? В JavaScript может происходить неочевидное приведение типов. Возможно, попробуйте сравнить с === или явно преобразовать в числа.

Замечание: многие инструменты lint для C-подобных языков рекомендуют заключать круглые скобки для удобства чтения при смешивании логических операторов.

Приоритет оператора можно переопределить, поместив выражение в круглые скобки.

 if ((+a == 1 && +b == 1) || (+c == 1 && +d == 1)) // Используйте скобки для их группировки
 {
   // ваш код
 }
 

Это предотвратит такие случаи, как if(0&&0 || 1&&1) .

2

Что ж, теперь, когда я закончил объяснять всем остальным (кроме Дэвида), почему их ответы неверны, позвольте мне дать им такой же шанс побеспокоить меня.

Ваш существующий код, как показано, уже должен делать то, что вы , кажется, описываете. Но возможно ли, что когда вы говорите:

«Я хочу проверить, равны ли 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
     

    Оба утверждения могут быть как истинными, так и ложными. При написании программы часто бывает необходимо чтобы увидеть, является ли утверждение истинным или ложным. Обычно это делает специалист оператор если(). Если оператор

    x == 4 верно, то сделайте что-нибудь:

    если (х==4) {
    сделай что-нибудь
    }
     

    Все это неудивительно. Булева логика, однако, также предлагает возможности для оценки всю строку утверждений и посмотреть, является ли вся строка истинной или ложной. Нравится:

    Сегодня идет дождь И мои ноги промокают
     

    В булевой логике это более длинное утверждение истинно, если сегодня идет дождь верно И мои ноги промокли верно.

    Сегодня идет дождь ИЛИ у меня промокли ноги
     

    В булевой логике это утверждение верно, если сегодня идет дождь верно ИЛИ если ваши ноги промокли верно true ИЛИ, если оба утверждения верны.

    Это также очень полезно при написании программ. Например, предположим, что вы хотите что-то сделать, если x==4 ИЛИ y==1. Тогда вы пишете:

    если (х==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 ).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *