Освоение операторов отношения и логических операторов C++: четкое руководство по принятию решений
В C++ операторы отношения и логические операторы сравнивают два или более операнда и возвращают либо true, либо false значения.
Мы используем эти операторы в принятии решений.
Операторы отношения C++
Оператор отношения используется для проверки отношения между двумя операндами. Например,
// проверяет, является ли a больше b a > b;
Здесь > — оператор отношения. Он проверяет, больше ли a, чем b, или нет.
Если отношение истинно, оно возвращает 1, тогда как если отношение ложно, оно возвращает 0.
Следующая таблица суммирует операторы отношения, используемые в C++.
| Оператор | Значение | Пример |
|---|---|---|
== |
Равно | 3 == 5 дает false |
!= |
Не равно | 3 != 5 дает true |
> |
Больше | 3 > 5 дает false |
< |
Меньше | 3 < 5 дает true |
>= |
Больше или равно | 3 >= 5 дает false |
<= |
Меньше или равно | 3 <= 5 дает true |
Оператор ==
Оператор равно == возвращает
true— если оба операнда равны или одинаковыfalse— если операнды неравны
Например,
int x = 10; int y = 15; int z = 10; x == y // false x == z // true
Примечание: Оператор отношения == не тот же, что оператор присваивания =. Оператор присваивания = присваивает значение переменной, константе, массиву или вектору. Он не сравнивает два операнда.
Оператор !=
Оператор не равно != возвращает
true— если оба операнда неравныfalse— если оба операнда равны.
Например,
int x = 10; int y = 15; int z = 10; x != y // true x != z // false
Оператор >
Оператор больше > возвращает
true— если левый операнд больше правогоfalse— если левый операнд меньше правого
Например,
int x = 10; int y = 15; x > y // false y > x // true
Оператор <
Оператор меньше < возвращает
true— если левый операнд меньше правогоfalse— если левый операнд больше правого
Например,
int x = 10; int y = 15; x < y // true y < x // false
Оператор >=
Оператор больше или равно >= возвращает
true— если левый операнд либо больше, либо равен правомуfalse— если левый операнд меньше правого
Например,
int x = 10; int y = 15; int z = 10; x >= y // false y >= x // true z >= x // true
Оператор <=
Оператор меньше или равно <= возвращает
true— если левый операнд либо меньше, либо равен правомуfalse— если левый операнд больше правого
Например,
int x = 10; int y = 15; x <= y // true y <= x // false
Чтобы узнать, как операторы отношения могут использоваться со строками, обратитесь к нашему руководству здесь.
Логические операторы C++
Мы используем логические операторы для проверки, является ли выражение истинным или ложным. Если выражение истинно, оно возвращает 1, тогда как если выражение ложно, оно возвращает 0.
| Оператор | Пример | Значение |
|---|---|---|
&& |
expression1 && expression 2 | Логическое И. true только если все операнды true. |
|| |
expression1 || expression 2 | Логическое ИЛИ. true если хотя бы один операнд true. |
! |
!expression | Логическое НЕ. true только если операнд false. |
Оператор логического И C++
Оператор логического И && возвращает
true— если и только если все операндыtrue.false— если один или более операндовfalse.
Таблица истинности оператора &&
Пусть a и b будут двумя операндами. 0 представляет false, а 1 представляет true. Тогда,
| a | b | a && b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Как мы видим из таблицы истинности выше, оператор && возвращает true только если оба a и b true.
Примечание: Оператор логического И && не должен путаться с побитовым оператором И &.
Пример 1: Оператор C++ И
// C++ программа, демонстрирующая таблицу истинности оператора && #include <iostream> using namespace std; int main() { int a = 5; int b = 9; // false && false = false cout << ((a == 0) && (a > b)) << endl; // false && true = false cout << ((a == 0) && (a < b)) << endl; // true && false = false cout << ((a == 5) && (a > b)) << endl; // true && true = true cout << ((a == 5) && (a < b)) << endl; return 0; }
Вывод
0 0 0 1
В этой программе мы объявляем и инициализируем две int переменные a и b со значениями 5 и 9 соответственно. Затем мы печатаем логическое выражение
((a == 0) && (a > b))
Здесь a == 0 оценивается как false, так как значение a равно 5. a > b также false, так как значение a меньше, чем b. Затем мы используем оператор И && для комбинирования этих двух выражений.
Из таблицы истинности оператора && мы знаем, что false && false (т.е. 0 && 0) приводит к оценке false (0). Это результат, который мы получаем в выводе.
Аналогично, мы оцениваем три других выражения, которые полностью демонстрируют таблицу истинности оператора &&.
Оператор логического ИЛИ C++
Оператор логического ИЛИ || возвращает
true— если один или более операндовtrue.false— если и только если все операндыfalse.
Таблица истинности оператора ||
Пусть a и b будут двумя операндами. Тогда,
| a | b | a || b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Как мы видим из таблицы истинности выше, оператор || возвращает false только если оба a и b false.
Пример 2: Оператор C++ ИЛИ
// C++ программа, демонстрирующая таблицу истинности оператора || #include <iostream> using namespace std; int main() { int a = 5; int b = 9; // false || false = false cout << ((a == 0) || (a > b)) << endl; // false || true = true cout << ((a == 0) || (a < b)) << endl; // true || false = true cout << ((a == 5) || (a > b)) << endl; // true || true = true cout << ((a == 5) || (a < b)) << endl; return 0; }
Вывод
0 1 1 1
В этой программе мы объявляем и инициализируем две int переменные a и b со значениями 5 и 9 соответственно. Затем мы печатаем логическое выражение
((a == 0) || (a > b))
Здесь a == 0 оценивается как false, так как значение a равно 5. a > b также false, так как значение a меньше, чем b. Затем мы используем оператор ИЛИ || для комбинирования этих двух выражений.
Из таблицы истинности оператора || мы знаем, что false || false (т.е. 0 || 0) приводит к оценке false (0). Это результат, который мы получаем в выводе.
Аналогично, мы оцениваем три других выражения, которые полностью демонстрируют таблицу истинности оператора ||.
Оператор логического НЕ C++ !
Оператор логического НЕ ! — это унарный оператор, т.е. он принимает только один операнд.
Он возвращает true, когда операнд false, и false, когда операнд true.
Таблица истинности оператора !
Пусть a будет операндом. Тогда,
Пример 3: Оператор C++ !
// C++ программа, демонстрирующая таблицу истинности оператора ! #include <iostream> using namespace std; int main() { int a = 5; // !false = true cout << !(a == 0) << endl; // !true = false cout << !(a == 5) << endl; return 0; }
Вывод
1 0
В этой программе мы объявляем и инициализируем int переменную a со значением 5. Затем мы печатаем логическое выражение
!(a == 0)
Здесь a == 0 оценивается как false, так как значение a равно 5. Однако мы используем оператор НЕ ! на a == 0. Поскольку a == 0 оценивается как false, оператор ! инвертирует результат a == 0 и итоговый результат — true.
Аналогично, выражение !(a == 5) в конечном счете возвращает false, потому что a == 5 — true.
Язык C
- Мастерство константных указателей и указателей на константы в C
- Указатели и массивы в C++: мастерство взаимодействия
- Условная логика в C#: if, if-else, if-else-if и вложенные if
- Мастерство указателей и многомерных массивов в C
- Перегрузка в C++: функции и операторы — подробное руководство
- Коллекции в C#: Stacks, Queues, Lists и Hash Tables — полное руководство
- Многопоточность в C#: Повышение производительности и эффективности
- Основы ввода-вывода в C#: Console.WriteLine, ReadLine и форматирование
- Освоение оператора switch в C#: синтаксис, примеры и лучшие практики
- Перегрузка операторов в C#: пользовательские типы и кастомная логика