JavaRush /Курсы /C# SELF /Логический тип bool и логические операции

Логический тип bool и логические операции

C# SELF
3 уровень , 3 лекция
Открыта

1. Логический тип данных: bool

Как мы уже убедились, в C# есть очень полезный оператор — if-else. Он выполняет один блок команд, если условие в скобках истинно, и второй блок команд, если условие ложно.

Чтобы было удобно работать с выражениями, которые могут быть истинными или ложными, в C# добавили специальный тип — bool. Его главная особенность заключается в том, что переменные этого типа могут принимать всего два значения: true (истина) и false (ложь).

Никакие другие значения присвоить переменным типа bool невозможно. Компилятор не позволит.

Примеры переменных типа bool:

bool isAdult = true;
bool hasMoney = false;
Пример объявления переменных типа bool

У переменной типа bool всего два значения — true (истина) и false (ложь). Всё! Почти как у успешного теста — либо "прошёл", либо "упал" (ой).

2. Операции сравнения

И зачем же нужен такой примитивный тип? Реальная мощь bool проявляется, когда мы строим логические выражения. Обычно они получаются с помощью операторов сравнения.

Оператор Назначение Пример Значение
== Равно
a == b
true или false
!= Не равно
a != b
true или false
> Больше
a > b
true или false
< Меньше
a < b
true или false
>= Больше или равно
a >= b
true или false
<= Меньше или равно
a <= b
true или false

Пример:

int age = 20;
bool isAdult = age >= 18;   // true (20 больше или равно 18)
bool isTeenager = age >= 13 && age < 18; // false (20 не меньше 18)
bool isEven = age % 2 == 0; // true (20 делится на 2 без остатка)

isAdult здесь станет true, потому что 20 – это действительно "взрослый" возраст.

Важный момент 1:

Операторы, состоящие из двух символов, разрывать нельзя.


a < = 10
speed > = max
age = = 18
time ! = 0
Так писать нельзя! Операторы сравнения должны быть слитно: <=, >=, ==, !=

Важный момент 2:

Обратите внимание, что операторов => и =< нет: есть только <= и >=. Если вы напишете a =< 3, ваш код просто не скомпилируется.

Важный момент 3:

В C# вы не можете записать выражение вида 18 < age < 65. Ведь у выражения 18 < age будет значение true или false. А сравнивать true < 65 (разные типы) нельзя. По крайней мере, в языке C#.

3. Логические операции

В языке C# нельзя записать выражение 18 < age < 65 — оно будет синтаксически некорректным и программа не скомпилируется.

Зато можно записать его так:


(18 < age) И (age < 65)
Логическое выражение с двумя условиями (на русском)

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

В C# есть три логических оператора: AND (и), OR (или) и NOT (не).

Хорошая новость: используя скобки, можно построить логические выражения любой сложности.
Плохая новость: разработчики C# решили вместо слов and, or и not, использовать обозначения из языка C++.

Логический оператор Ожидание Реальность
И (∧) and &&
ИЛИ (∨) or ||
НЕ (¬) not !

Вот несколько примеров использования логических операторов в C#:

Выражение Расшифровка Пояснение
(0 < a) && (a < 100) (0 < a) and (a < 100) (0 < a) И (a < 100)
(!a) && (!b) (not a) and (not b) (НЕ a) И (НЕ b)
!(!a || !b) not((not a) or (not b)) НЕ((НЕ a) ИЛИ (НЕ b))

4. Таблицы истинности

Вкратце пройдемся по логическим операциям.

Оператор AND

Оператор AND, он же И, он же &&, он же конъюнкция, он же логическое умножение.

Выражение Результат
true && true true
true && false false
false && true false
false && false false

Другими словами, результат выражения равен true (истина) только если оба значения, которые участвуют в выражении, равны true (истина). В остальных случаях всегда false (ложь).

Оператор OR

Оператор OR, он же ИЛИ, он же ||, он же дизъюнкция, он же логическое сложение.

Выражение Результат
true || true true
true || false true
false || true true
false || false false

Другими словами, результат выражения равен true (истина) всегда, если хотя бы одно значение, участвующее в выражении, равно true (истина). Если оба равны false, то результат false.

Оператор NOT

Оператор NOT, он же НЕ, он же !, он же инверсия.

Выражение Результат
! true false
! false true

Меняет true на false и наоборот.

Полезные выражения:

Выражение Результат
m && !m false
m || !m true
!(a && b) !a || !b
!(a || b) !a && !b

5. Примеры логических операций: and, or, not

Операция "И", AND, обозначается &&

Результат истина, только когда обе переменных истинны.

int age = 16;
bool hasTicket = true;
bool canAttend = age >= 14 && hasTicket; // true (16 больше 14 И билет есть)

Если тебе есть 14 И у тебя есть билет — проходи!

Операция "ИЛИ", OR, обозначается (||)

Результат истина, если хотя бы одно условие истинно.

bool isAdmin = false;
bool isModerator = true;
bool canEdit = isAdmin || isModerator; // true (можно редактировать, если хоть что-то из этого true)

Если ты админ ИЛИ модератор — пожалуйста, нажимай кнопки!

Операция "НЕ", NOT, обозначается (!)

Инвертор превращает истину в ложь и наоборот.

bool isWeekend = false;
bool shouldGoToWork = !isWeekend; // true (если не выходные, работаем)

Если НЕ выходные — пора вставать!

Комбинирование: стройте условия какой угодно сложности

Можно комбинировать сколько угодно логических операций (желательно не перестараться, чтобы не получилось что-то вроде "если он не НЕ не НЕ не админ..."). Скобки можно (и нужно!) использовать для ясности.

Пример:

int age = 17;
bool hasTicket = false;
bool isVip = true;

bool canGo = (age >= 18 && hasTicket) || isVip; // true, потому что isVip = true

В этом примере логика: если человек совершеннолетний и с билетом, или если он VIP — пропускаем. Если не VIP — только если взрослый и с билетом.

2
Задача
C# SELF, 3 уровень, 3 лекция
Недоступна
Простейшие выражения с использованием типа bool
Простейшие выражения с использованием типа bool
2
Задача
C# SELF, 3 уровень, 3 лекция
Недоступна
Проверка на совершеннолетие и статус
Проверка на совершеннолетие и статус
Комментарии (4)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Evgeny Aseev Уровень 10
14 января 2026
Мне кажется hasUmbrella действительно нужна инверсия!?
Yurii N Уровень 50
18 декабря 2025
Задача 2. Задание описывает кривую логику, потом некоторые требования проверки задачи высосаны из пальца, при том, что даже предоставляемое "Правильное решение" не проходит проверку. Зачем так усложнять условие проверки задания?
Артур Авагян Уровень 11
17 октября 2025
Правильное решение 2й задачи не проходит проверку
Николай Уровень 28
24 июля 2025
Кажется что результат первой задачи должен быть false, если делать как того требует проверка