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
, y
o 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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de