ИЛИ в информатике называют дизъюнкцией, или логическим сложением. Выражение «A ИЛИ B» истинно, если истинно хотя бы одно из условий, и ложно только тогда, когда ложны оба. В учебниках и на ЕГЭ его пишут знаком ∨ (на клавиатуре \/ или |), в Python словом or, в C, Java и JavaScript двумя чертами ||, в Excel функцией ИЛИ().
Рядом с ИЛИ живут ещё четыре операции: НЕ, И, импликация и тождество. Ниже их обозначения, таблицы истинности, порядок вычисления и то, как они записываются в коде. Арифметические и прочие знаки Python разобраны отдельно в статье об операторах в Python.
Логические операции и их обозначения

Логическая операция берёт одно или два высказывания со значениями «истина» (1) и «ложь» (0) и возвращает новое такое же значение. Этим разделом математики занимается алгебра логики, её ещё называют булевой алгеброй по имени Джорджа Буля. В школе тему проходят в 8 классе и повторяют перед экзаменом, её разбирают почти все курсы по информатике с подготовкой к ЕГЭ.
Обозначения в учебной колонке взяты из соглашений, которые печатают в начале каждого варианта ЕГЭ по информатике (демоверсия ФИПИ на 2027 год).
| Операция | Другое название | Учебник и ЕГЭ | Python | C, Java, JavaScript | Истинна, когда |
|---|---|---|---|---|---|
| НЕ | инверсия, отрицание | ¬A | not a |
!a |
A ложно |
| И | конъюнкция, логическое умножение | A ∧ B, A & B | a and b |
a && b |
истинны оба |
| ИЛИ | дизъюнкция, логическое сложение | A ∨ B, A | B | a or b |
a || b |
истинно хотя бы одно |
| Импликация | следование, «если A, то B» | A → B | not a or b |
!a || b |
всегда, кроме случая A = 1, B = 0 |
| Тождество | эквивалентность | A ≡ B | a == b |
a == b |
значения совпадают |
| Исключающее ИЛИ | XOR, строгая дизъюнкция | A ⊕ B | a != b, a ^ b |
a != b, a ^ b |
значения различаются |
Отдельного оператора для импликации ни в одном из этих языков нет. Её собирают из НЕ и ИЛИ: в соглашениях демоверсии ЕГЭ прямо сказано, что A → B и ¬A ∨ B равносильны.
Исключающего ИЛИ в списке обозначений ЕГЭ нет. Если в задаче оно всё же встретилось, его расписывают через отрицание тождества: A ⊕ B = ¬(A ≡ B).
Таблица истинности для двух переменных
Таблица истинности перечисляет все наборы значений переменных и результат операции на каждом. Для двух переменных наборов четыре, для трёх восемь: каждая новая переменная удваивает число строк.
| A | B | ¬A | A ∧ B | A ∨ B | A → B | A ≡ B | A ⊕ B |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
| 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 |
Таблицу можно получить и проверить на Python. Скрипт ниже выводит ровно эти строки (если Python ещё не стоит на компьютере, начните с инструкции по установке):
from itertools import product
print("A B | not A | A and B | A or B | A -> B | A == B | A != B")
for a, b in product([0, 1], repeat=2):
print(a, b, "|", int(not a), " |", int(a and b), " |", int(a or b),
" |", int((not a) or b), " |", int(a == b), " |", int(a != b))
Запомнить импликацию помогает обещание: «если сдам экзамен, куплю велосипед». Обещание нарушено только в одном случае: экзамен сдан, а велосипеда нет. Если экзамен не сдан, обещание не нарушено, что бы ни случилось с велосипедом.
Канал основателя Checkroi Вани Буявца3 700 человек читают мой Телеграм-канал про нейросетиСобрал промпты для Claude Code и ChatGPT, разборы ИИ-инструментов и лайфхаки по продвижению бизнеса в одном местеПрисоединитьсяПриоритет логических операций
Без скобок операции выполняются в таком порядке (так он записан в соглашениях ЕГЭ):
- инверсия (¬);
- конъюнкция (∧);
- дизъюнкция (∨);
- импликация (→);
- тождество (≡).
Поэтому ¬A ∧ B ∨ C ∧ D читается как ((¬A) ∧ B) ∨ (C ∧ D). Операции одного уровня идут слева направо: A ∨ B ∨ C значит (A ∨ B) ∨ C.
В языках программирования порядок тот же для трёх основных операций. В Python, по грамматике языка, сильнее всех связывает not, за ним and, слабее всех or, а сравнения вроде == и < выполняются ещё раньше, чем not. В C и JavaScript то же самое: !, потом &&, потом ||.
Проверить, что Python понимает выражение так же, как экзаменатор, можно перебором всех 16 наборов:
from itertools import product
for a, b, c, d in product([0, 1], repeat=4):
f = (not a) and b or c and d
g = ((not a) and b) or (c and d)
assert bool(f) == bool(g)
print("порядок совпадает на всех 16 наборах")
Место исключающего ИЛИ в этом списке в разных учебниках разное. Если оно есть в выражении, ставьте скобки, и вопрос порядка отпадёт.
Как построить таблицу истинности для выражения

На ЕГЭ по информатике это задание 2: дана функция и фрагмент её таблицы, нужно понять, какой столбец какой переменной соответствует. Подробнее о том, какие экзамены сдают на ИТ-специальности, читайте в статье что сдавать на программиста.
Порядок работы руками такой:
- Посчитайте переменные. Строк будет 2n: при трёх переменных восемь, при четырёх шестнадцать.
- Выпишите наборы по порядку двоичных чисел: 000, 001, 010 и дальше до 111.
- Разбейте выражение на шаги по приоритету и заведите столбец на каждый шаг: сначала отрицания, потом конъюнкции, потом всё остальное.
- Заполните последний столбец, он и есть значение функции.
Для F = (x → y) ∧ (¬z ∨ x) то же самое делают пять строк кода, а похожие упражнения на условия есть в подборке задач по Python для начинающих. Для чисел 0 и 1 сравнение x <= y работает как импликация: ложно оно только при x = 1, y = 0.
from itertools import product
print("x y z F")
for x, y, z in product([0, 1], repeat=3):
F = (x <= y) and (not z or x)
print(x, y, z, int(F))
Вывод:
x y z F
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
Законы алгебры логики
Законы нужны, чтобы упростить выражение до вычисления. Каждый из них проверяется таблицей истинности.
- Двойное отрицание: ¬¬A = A.
- Переместительный и сочетательный: A ∨ B = B ∨ A, (A ∧ B) ∧ C = A ∧ (B ∧ C).
- Распределительный: A ∧ (B ∨ C) = (A ∧ B) ∨ (A ∧ C), и в отличие от обычной арифметики работает в обе стороны: A ∨ (B ∧ C) = (A ∨ B) ∧ (A ∨ C).
- Законы де Моргана: ¬(A ∧ B) = ¬A ∨ ¬B и ¬(A ∨ B) = ¬A ∧ ¬B. Отрицание, внесённое в скобку, меняет И на ИЛИ и наоборот.
- Поглощение: A ∨ (A ∧ B) = A, A ∧ (A ∨ B) = A.
- Импликация через ИЛИ: A → B = ¬A ∨ B.
- Исключённое третье и противоречие: A ∨ ¬A = 1, A ∧ ¬A = 0.
Де Морган чаще всего нужен в коде. Условие «не (пришёл и оплатил)» удобнее читать как «не пришёл или не оплатил». Так переписывают условия в if и в циклах, например в управляющих конструкциях C.
Логические операторы в программировании

Python
В Python and и or возвращают не True или False, а один из операндов. В документации языка это описано так: x or y сначала вычисляет x, если оно истинно, возвращает его, иначе вычисляет и возвращает y. Этим пользуются для значений по умолчанию:
print(0 or "гость") # гость
print("Анна" or "гость") # Анна
print([] and "не дойдёт") # []
Вторая особенность называется сокращённым вычислением. Если по левой части ответ уже ясен, правая не вычисляется вовсе:
def check(name):
print("проверяю", name)
return True
print(check("первое") or check("второе"))
# проверяю первое
# True
Функция check("второе") не вызвалась. Оператор not всегда возвращает именно True или False. Похожая короткая запись условий разобрана в статье о тернарном операторе в Python.
C и JavaScript
Логические операторы в C пишутся как !, &&, ||, а одиночные &, |, ^ работают с отдельными битами числа. Их часто путают, а компилятор даже с флагом -Wall не выдаёт предупреждения:
#include <stdio.h>
int main(void) {
int a = 4, b = 2;
printf("%d %d\n", a && b, a & b); /* 1 0 */
return 0;
}
Оба числа ненулевые, поэтому a && b истинно. А побитовое 4 & 2 даёт 0: у 100 и 010 нет общих единиц. Остальные знаки C собраны в статье об операторах и выражениях в C.
В JavaScript || ведёт себя как or в Python. По справке MDN, оператор возвращает значение одного из операндов, и вычисление идёт слева направо до первого истинноподобного значения. Поэтому 0 || "гость" вернёт строку «гость».
Excel и Google Таблицы
В таблицах ИЛИ записывают функцией: =ИЛИ(A2>10; B2="да"). Она возвращает ИСТИНА, если выполнено хотя бы одно условие.
По справке Microsoft, условий может быть не больше 255.
ИЛИ вкладывают в ЕСЛИ, чтобы формула выводила свой текст или число вместо ИСТИНА и ЛОЖЬ. Как это делается, показано в инструкции по функции ЕСЛИ в Excel.
SQL
В SQL есть третье значение NULL, то есть «неизвестно». В документации PostgreSQL приведены таблицы для такой логики:
- NULL OR TRUE = TRUE: одного истинного условия хватает.
- NULL AND FALSE = FALSE: одного ложного хватает.
- NULL OR FALSE и NULL AND TRUE дают NULL.
Из-за этого строка с NULL в столбце может выпасть из выборки WHERE без всякой ошибки. Подробнее об этом в статье о NULL в SQL.
Частые ошибки
Сравнение с несколькими значениями через or
Запись x == 1 or 2 читается не как «x равно 1 или 2». Сравнение выполняется первым, и получается (x == 1) or 2. При x = 5 это выражение возвращает 2, то есть истину.
Решение: x == 1 or x == 2 или короче x in (1, 2).
Импликация считается ложной при ложной посылке
При A = 0 импликация A → B истинна при любом B. Ошибку проще всего поймать, сверившись с третьей строкой таблицы: ложь только в случае 1 → 0.
Одиночный амперсанд вместо двойного
В C, Java и JavaScript if (a & b) проверяет общие биты, а не «оба истинны». Для логики нужен &&.
Отрицание без скобок
В Python not a == b означает not (a == b), потому что сравнение выполняется раньше not. Если нужно было «(не a) равно b», ставьте скобки.
Где освоить информатику и программирование системно
С логических операций начинается и школьная информатика, и любой язык программирования. Дальше идут ветвления, циклы, алгоритмы и задачи ЕГЭ посложнее. В каталоге собраны курсы по информатике: подготовка к ЕГЭ и ОГЭ, программирование для школьников и взрослых. Если цель — язык для работы, смотрите курсы по Python.
| Курс | Школа | Стоимость со скидкой | В рассрочку | Длительность | Обзор курса от Checkroi |
|---|---|---|---|---|---|
| Прикладная информатика (Магистратура) Перейти на сайт курса | 90 000 ₽ | - | 2 года | Обзор курса | |
| Математика и информатика (Второе высшее) Перейти на сайт курса | 20 000 ₽ | - | 4 года | Обзор курса | |
| Профессия Учитель информатики и ИКТ за 6 мес. ФГОС Перейти на сайт курса | 33 200 ₽ | 2770 ₽/мес. | 21 неделя | Обзор курса | |
| Профессия Учитель математики и информатики за 9 мес. Перейти на сайт курса | 36 600 ₽ | 3050 ₽/мес. | 28 недель | Обзор курса | |
| Математика и информатика (Бакалавриат) Перейти на сайт курса | 20 000 ₽ | - | 4 года | Обзор курса |
Больше программ — в полном каталоге курсов по информатике




