В языке определены следующие операции отношения: проверка на равенство (==), проверка на неравенство (!=), меньше (<), меньше или равно (<=), больше (>), больше или равно (>=).
Все перечисленные операции вырабатывают результат булевого (логического) типа. Если данное отношение между операндами истинно, то значение этого результата – true (что равно 1), а если отношение ложно – false (что равно 0).
Предостережение! Обычной ошибкой для новичков, особенно для тех, кто переходит с программирования на Паскале к C++, является использование вместо операции сравнения на равенство == операции присваивания =. С точки зрения синтаксиса C++ в таком операторе нет ошибок, поэтому программа соберётся нормально, а работать будет неправильно.
Например:
int a;
cin >> a;
if (a = 0) // Ошибка: присваивание (=) вместо проверки на равенство (==)
cout << “Нельзя делить на ноль”;
else
cout << 100/a;
Здесь внутри условия выполняется операция присваивания, результатом которой будет присвоенное значение, т.е. 0. Поэтому внутри скобок условия, независимо от введённого пользователем значения, всегда будет 0. Что соответствует false. Условие всегда будет ложно и в любом случае выполнится деление 100 на 0, что приведёт к ошибке во время работы программы.
Если начинающий программист испытывает такие трудности, то рекомендуется константы, с которыми происходит сравнение на равенство, всегда писать слева, т.е. вместо a == 0 писать 0 == a. Если здесь случайно будет использовано присваивание, то компилятор на запись 0 = a выдаст ошибку, т.к. слева в операции стоит константа, в которую нельзя ничего присвоить.