Как называются операторы and or not
Перейти к содержимому

Как называются операторы and or not

  • автор:

Логические операторы: И, ИЛИ, РАВНО и другие

Логические операторы это специальные символы, которые изменяют или комбинируют логические значения типа Boolean — true и false.

Логические операторы это специальные символы (или сочетания символов), которые изменяют или комбинируют логические значения типа Boolean — true и false. Их используют чтобы создавать сложные условия, например в циклах.

Логические операторы

Оператор НЕ (!, not)

Выражение вида !true равно false и наоборот. ! — унарный оператор (применяется к одному операнду), он помещается перед операндом.

Оператор И (&&, and)

Выражение вида a && b будет равно true только тогда, когда и а и b равны true.

Оператор ИЛИ (||, or)

Выражение a || b будет равно true, когда или a, или b (или оба) равен true.

Оператор исключающее ИЛИ (^, xor)

Выражение a ^ b будет равно true, когда только один из операндов имеет значение true. Подробно о применении xor рассказывается в статье «Практика применения XOR в программировании »

Оператор эквивалентности ==

Выражение a == b будет равно true, когда a и b имеют одинаковые значения.

Оператор неравенства !=

Выражение a != b будет равно true, когда a и b имеют разные значения.

Приоритет логических операторов

  1. Оператор эквивалентности — ==, оператор неравенства — !=.
  2. Оператор отрицания — !.
  3. Оператор И — &&.
  4. Оператор исключающее ИЛИ — ^.
  5. Оператор ИЛИ — ||.

Предлагаем вам пройти тест и узнать, насколько хорошо вы разобрались с логическими операторами:

Логические операторы

Здесь мы рассмотрим первые пять, операторы ?? и ??= будет в следующей статье.

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

Давайте рассмотрим их подробнее.

|| (ИЛИ)

Оператор «ИЛИ» выглядит как двойной символ вертикальной черты:

result = a || b;

Традиционно в программировании ИЛИ предназначено только для манипулирования булевыми значениями: в случае, если какой-либо из аргументов true , он вернёт true , в противоположной ситуации возвращается false .

В JavaScript, как мы увидим далее, этот оператор работает несколько иным образом. Но давайте сперва посмотрим, что происходит с булевыми значениями.

Существует всего четыре возможные логические комбинации:

alert( true || true ); // true alert( false || true ); // true alert( true || false ); // true alert( false || false ); // false

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

Если значение не логического типа, то оно к нему приводится в целях вычислений.

Например, число 1 будет воспринято как true , а 0 – как false :

if (1 || 0) < // работает как if( true || false ) alert( 'истинно!' ); >

Обычно оператор || используется в if для проверки истинности любого из заданных условий.

let hour = 9; if (hour < 10 || hour >18)

Можно передать и больше условий:

let hour = 12; let isWeekend = true; if (hour < 10 || hour >18 || isWeekend) < alert( 'Офис закрыт.' ); // это выходной >

ИЛИ «||» находит первое истинное значение

Описанная выше логика соответствует традиционной. Теперь давайте поработаем с «дополнительными» возможностями JavaScript.

Расширенный алгоритм работает следующим образом.

При выполнении ИЛИ || с несколькими значениями:

result = value1 || value2 || value3;

Оператор || выполняет следующие действия:

  • Вычисляет операнды слева направо.
  • Каждый операнд конвертирует в логическое значение. Если результат true , останавливается и возвращает исходное значение этого операнда.
  • Если все операнды являются ложными ( false ), возвращает последний из них.

Значение возвращается в исходном виде, без преобразования.

Другими словами, цепочка ИЛИ || возвращает первое истинное значение или последнее, если такое значение не найдено.

alert( 1 || 0 ); // 1 (1 - истинное значение) alert( true || 'какая-то строка' ); // true alert( null || 1 ); // 1 (первое истинное значение) alert( null || 0 || 1 ); // 1 (первое истинное значение) alert( undefined || null || 0 ); // 0 (поскольку все ложно, возвращается последнее значение)

Это делает возможным более интересное применение оператора по сравнению с «чистым, традиционным, только булевым ИЛИ».

    Получение первого истинного значения из списка переменных или выражений. Например, у нас есть переменные firstName , lastName и nickName , все они необязательные (т.е. они могут быть неопределенными или иметь ложные значения). Давайте воспользуемся оператором ИЛИ || , чтобы выбрать ту переменную, в которой есть данные, и показать её (или «Аноним», если ни в одной переменной данных нет):

let firstName = ""; let lastName = ""; let nickName = "Суперкодер"; alert( firstName || lastName || nickName || "Аноним"); // Суперкодер

Основные логические операции. AND, NOT, OR и XOR (исключающее или)

В этой статье мы поговорим о некоторых битовых операциях. Рассмотрим основные из них: XOR (исключающее ИЛИ), AND (И), NOT (НЕ) а также OR (ИЛИ).

Как известно, минимальной единицей измерения информации является бит, который хранит одно из 2-х значений: 0 (False, ложь) либо 1 (True, истина). Таким образом, битовая ячейка может одновременно находиться лишь в одном из двух возможных состояний.

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

Логическая операция AND (и)

AND обозначается знаком & .

Оператор AND выполняется с 2-мя битами, возьмём, к примеру, a и b. Результат выполнения операции AND равен 1, если a и b равняются 1. В остальных случаях результат равен 0. Например, с помощью AND вы можете узнать, чётное число или нет.

Посмотрите на таблицу истинности операции AND:

1-20219-a11fa6.jpg

Логическая операция OR (ИЛИ)

Оператор OR также выполняется с 2-мя битами (a и b). Результат равен 0, если a и b равны 0, иначе он равен 1. Смотрим таблицу истинности.

2-20219-a4e8af.jpg

Логическая операция XOR (исключающее ИЛИ)

Оператор XOR обозначается ^ .

XOR выполняется с 2-мя битами (a и b). Результат выполнения операции XOR (исключающее ИЛИ) равен 1, когда один из битов b или a равен 1. В остальных ситуациях результат применения оператора XOR равен 0.

Таблица истинности логической операции для XOR (исключающее ИЛИ) выглядит так:

3-20219-7c562b.jpg

Используя XOR (исключающее ИЛИ), вы можете поменять значения 2-х переменных одинакового типа данных, не используя временную переменную. А ещё, посредством XOR можно зашифровать текст, например:

String msg = «This is a message»; char[] message = msg.toCharArray(); String key = «.*)»; String encryptedString = new String(); for(int i = 0; i

Согласен, XOR — далеко не самый надёжный метод шифрования, но это не значит, что его нельзя сделать частью какого-либо шифровального алгоритма.

Логическая операция NOT (НЕ)

Это побитовое отрицание, поэтому выполняется с одним битом и обозначается ~ .

Результат зависит от состояния бита. Если он в нулевом состоянии, то итог операции — единица и наоборот. Всё предельно просто.

4-20219-fd7aab.jpg

Эти 4 логические операции следует запомнить в первую очередь, т. к. с их помощью можно получить практически любой возможный результат. Также существуют такие операции, как > (побитовый сдвиг вправо).

Логическое ИЛИ (||)

Логический оператор ИЛИ ( || ) (дизъюнкция) для набора операндов истинен будет true только в случае, если один или несколько его операндов имеют значение true .

Обычно используется с булевыми (логическими) значениями. Тогда возвращается булевое значение. Однако фактически оператор || возвращает значение одного из операндов, поэтому если этот оператор используется с небулевыми значениями, он вернет небулевое значение.

Интерактивный пример

Синтаксис

|| expr2; 

Описание

Если expr1 может быть преобразовано в true , то вернётся expr1 ; в противном случае возвращается expr2 .

Если значение может быть преобразовано в true , то оно рассматривается как истиноподобное (truthy). Если же значение может быть преобразовано в false , то оно называется ложноподобным (falsy).

Примеры выражений, которые могут быть преобразованы в false :

  • null ;
  • NaN ;
  • 0 ;
  • пустая строка ( «» , » , « );
  • undefined .

Несмотря на то, что оператор || может использоваться с операндами без логических значений, это всё равно булевый оператор, поскольку его возвращаемое значение всегда можно преобразовать в булевый примитив. Чтобы явно преобразовать возвращаемое значение этого оператора (или вообще любое выражение) в соответствующее значение булевого типа, используйте двойной оператор НЕ или конструктор Boolean (en-US).

Сокращённое вычисление

Оператор логического ИЛИ вычисляется слева направо, делая возможным сокращённое вычисление выражения, согласно следующему правилу:

(истинноподобное выражение) || следующее выражение — вычисление останавливается на истинноподобном выражении;

Сокращенное вычисление хорошо тем, что следующее выражение не будет вычислено, т.е. всё, связанное с ним, будет проигнорировано (например, если следующее выражение представляет собой вызов функции, то он никогда не произойдёт). Всё потому, что значение оператора известно уже после вычисления первого операнда. Посмотрите на пример:

function A()  console.log("вызвана функция A"); return false; > function B()  console.log("вызвана функция B"); return true; > console.log(B() || A()); // В результате вызова функции B, в консоли будет выведено "вызвана функция B", // а далее в консоли появится false (это результат оператора) 

Приоритет операторов

Следующие выражения могут показаться эквивалентными, но это не так, потому что оператор && выполняется до оператора || (см. приоритет операторов).

true || (false && false); // вернёт true, поскольку сначала вычисляется && (true || false) && false; // вернёт false, поскольку у группировки выше приоритет 

Примеры

Использование оператора ИЛИ

В следующем коде показаны примеры использования оператора || (логическое ИЛИ).

= true || true; // t || t вернёт true o2 = false || true; // f || t вернёт true o3 = true || false; // t || f вернёт true o4 = false || 3 == 4; // f || f вернёт false o5 = "Cat" || "Dog"; // t || t вернёт "Cat" o6 = false || "Cat"; // f || t вернёт "Cat" o7 = "Cat" || false; // t || f вернёт "Cat" o8 = "" || false; // f || f вернёт false o9 = false || ""; // f || f вернёт "" o10 = false || varObject; // f || object вернёт varObject 

Примечание: Если вы используете этот оператор, чтобы задать значение по умолчанию для некоторой переменной, имейте в виду, что любое ложноподобное будет проигнорировано. Если вам нужно исключить только null или undefined , попробуйте воспользоваться оператором нулевого слияния.

Правила конвертации для булевых значений

Конвертация И в ИЛИ

Следующая операция с булевыми значениями:

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

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