Поделиться через


Оператор логического ИЛИ: ||

logical-or-expression || logical-and-expression

Заметки

Оператор логического ИЛИ (||) возвращает логическое значение true, если один или оба операнда имеют значение true; в противном случае он возвращает значение false. Перед вычислением оба операнда неявно преобразуются в тип bool; результат также имеет тип bool. Логическое ИЛИ имеет ассоциативность в направлении слева направо.

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

В выражении логического ИЛИ сначала полностью вычисляется первый операнд и учитываются все побочные эффекты, и лишь после этого вычисление продолжается.

Второй операнд вычисляется только в том случае, если первый имеет значение false (0). Это исключает необязательное вычисление второго операнда, если выражение логического ИЛИ имеет значение true.

printf( "%d" , (x == w || x == y || x == z) );

В приведенном выше примере, если x равно w, y или z, то второй аргумент функции printf имеет значение true и код выводит значение 1. В противном случае он возвращает значение false и код выводит значение 0. Как только обнаруживается, что одно из значений равно true, вычисление прекращается.

Ключевое слово оператора ||

Текстовым эквивалентом оператора || является оператор or. Сделать оператор or доступным в ваших программах можно двумя способами: включить файл заголовка iso646.h или установить параметр компиляции /Za (отключить расширения языка).

Пример

// expre_Logical_OR_Operator.cpp
// compile with: /EHsc
// Demonstrate logical OR
#include <iostream>
using namespace std;
int main() {
   int a = 5, b = 10, c = 15;
   cout  << boolalpha
         << "The true expression "
         << "a < b || b > c yields "
         << (a < b || b > c) << endl
         << "The false expression "
         << "a > b || b > c yields "
         << (a > b || b > c) << endl;
}

См. также

Ссылки

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

Операторы C++

Операторы C++, приоритет и ассоциативность

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