Operador lógico OR: ||

Sintaxis

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

Comentarios

El operador lógico OR (||) devuelve el valor booleano true si uno o ambos operandos son true y, de lo contrario, devuelven false. Los operandos se convierten implícitamente al tipo bool antes de la evaluación y el resultado es de tipo bool. El operador OR lógico tiene asociatividad de izquierda a derecha.

Los operandos del operador lógico OR no tienen que tener el mismo tipo, pero deben ser de tipo booleano, entero o de puntero. Los operandos son normalmente expresiones relacionales o de igualdad.

El primer operando se evalúa en su totalidad y, antes de proseguir con la evaluación de la expresión OR lógica, se aplican todos los efectos secundarios.

El segundo operando se evalúa solo si el primer operando se evalúa como false, porque la evaluación no es necesaria cuando la expresión lógica OR es true. Se conoce como evaluación de cortocircuito.

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

En el ejemplo anterior, si x es igual a w, yo z, el segundo argumento de la función printf se evalúa como true, que luego se promueve a un número entero, y se imprime el valor 1. De lo contrario, se evalúa como false y se imprime el valor 0. En cuanto una de las condiciones se evalúe como true, se interrumpe la evaluación.

Palabra clave del operador para ||

C++ especifica or como una ortografía alternativa para ||. En C, la ortografía alternativa se proporciona como una macro en el encabezado <iso646.h>. En C++, la ortografía alternativa es una palabra clave; el uso de <iso646.h> o el equivalente de C++ <ciso646> está en desuso. En Microsoft C++, se requiere la opción del compilador /permissive- o /Za para poder habilitar la ortografía alternativa.

Ejemplo

// 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;
}

Consulte también

Operadores integrados de C++, precedencia y asociatividad
Operadores lógicos de C