Статьи

Учебные материалы по языку C++ — от основ до продвинутых тем

Операторы сравнения и логические операторы

Страница 6 из 43 · 2026-10-25 · 2 мин чтения

Операторы сравнения и логические операторы

Операторы сравнения

Операторы сравнения проверяют отношение между двумя значениями и возвращают bool — true или false.

ОператорЗначениеПример
==равноa == b
!=не равноa != b
>большеa > b
<меньшеa < b
>=больше или равноa >= b
<=меньше или равноa <= b
int age = 20;bool adult = age >= 18;std::cout << adult << '\n';

Не путай = и ==: первый оператор присваивает значение, второй сравнивает значения.

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

  • && — логическое И: оба условия должны быть истинными.
  • || — логическое ИЛИ: достаточно одного истинного условия.
  • ! — логическое НЕ: инвертирует результат.
int age = 22;bool hasTicket = true;if (age >= 18 && hasTicket) {    std::cout << "Вход разрешён\n";}

Короткое замыкание

В выражении a && b правая часть не вычисляется, если a уже ложно. В выражении a || b правая часть не вычисляется, если a уже истинно. Это позволяет безопасно проверять указатель перед обращением к объекту:

if (ptr != nullptr && ptr->IsReady()) {    // ptr разыменовывается только после успешной проверки}

Приоритет и скобки

Скобки помогают сделать намерение очевидным:

if ((age >= 18 && hasTicket) || isAdministrator) {    // условие выполнено}

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

Частые ошибки

  • Использовать = вместо ==.
  • Проверять диапазон как 0 <= x <= 10. В C++ это не означает математическую цепочку. Пиши x >= 0 && x <= 10.
  • Сравнивать числа с плавающей точкой на точное равенство после вычислений. Иногда лучше проверять разницу с допустимой погрешностью.

Итог

Сравнения дают bool, а &&, || и ! позволяют объединять проверки. Пиши сложные условия так, чтобы их смысл можно было понять с первого взгляда.