При использовании предложенных выше значений это выражение возвращает значение false. Поскольку оказалось, что x (его значение равно 3) не больше 5, то выражение слева от оператора И возвращает false, а следовательно, и все выражение целиком тоже возвратит false. Помните, что оператор И возвращает true только в том случае, когда обе части выражения возвращают true. Например, ваш вкус можно считать хорошим только в том случае, если о надетой на вас вещи можно сказать, что она модная и что вам она идет.
Примечание:
Подробнее об истине и лжи
В языке C++ нуль эквивалентен значению false, а все другие числовые значения эквивалентны значению true. Поскольку любое выражение всегда имеет значение, многие программисты пользуются преимуществами этой эквивалентности значений в выражениях условия оператора if. Такое выражение, как
if (x) // если x не равен нулю, то условие истинно
x = 0;
можно читать следующим образом: если переменная x имеет ненулевое значение, устанавливаем ее равной нулю. Чтобы сделать смысл этого выражения более очевидным, можно записать его так:
if (x ! = 0) // если x не нуль
x = 0;
Оба выражения одинаково правомочны, но последнее понятнее. И еще один момент. Чтобы программа не превратилась в сплошное шаманство, лучше все-таки проверять истинность некоторых логических условий, а не равенство выражения нулю.
Следующие два выражения также эквивалентны:
if (!x) // истинно, если x равен нулю
if (x == 0) // если x равен нулю
Однако, второе выражение проще для понимания и гораздо очевиднее, поскольку явно проверяется математическое значение переменной x.
Рекомендуется:
Не рекомендуется:
Условный оператор
Условный оператор (?:) — это единственный оператор в языке C++, который работает сразу с тремя операндами.
Синтаксис использования условного оператора следующий:
(выражение1) ? (выражение2) : (выражениеЗ)
Эта строка читается таким образом: если выражение1 возвращает true, то выполняется выражение2, в противном случае выполняется выражениеЗ. Обычно возвращаемое значение присваивается некоторой переменной.
В листинге 4.10 показано использование условного оператора вместо оператора if.
Листинг 4.10. Пример использования условного оператора
1: // Листинг 4.10. Пример использования условного оператора
2: //
3: #include
4: int main
5: {
6: int x. у, z;
7: cout << "Enter two numbers.\n";
8: cout << "First: ";
9: cin >> x;
10: cout << "\nSecond: ";
11: cin >> у;
12: cout << "\n";
13:
14: if (x > у)
15: z = x;
16: else
17: z = у;
18:
19: cout << "z: " << z;
20: cout << "\n";
21:
22: z = (x > у) ? x : у;
23:
24: cout << "z: " << z;
25: cout << "\n";
26: return 0;
27: }
Результат:
Enter two numbers.
First: 5
Second: 8
z: 8
z: 8
Анализ: Сначала создается три целочисленные переменные: x, у и z. Значения первых двух вводятся пользователем. Затем в строке 14 выполняется инструкция if, которая позволяет узнать, какое из введенных значений больше, причем выявленное большее значение присваивается переменной z. Это значение выводится на экран в строке 19.