Operador OR lógico: ||
logical-or-expression || logical-and-expression
Comentários
O operador OR lógico (||) retorna o valor booliano true se um ou ambos os operandos forem true e retorna false de outra forma. Os operandos são convertidos implicitamente no tipo bool antes da avaliação, e o resultado é do tipo bool. O OR lógico tem associatividade da esquerda para a direita.
Os operandos para o operador OR lógico não precisam ser do mesmo tipo, mas devem ser de tipo integral ou ponteiro. Os operandos são geralmente expressões relacionais ou de igualdade.
O primeiro operando é completamente avaliado e todos os efeitos colaterais são concluídos antes de continuar a avaliação da expressão OR lógica.
O segundo operando é avaliado somente se o primeiro operando for avaliado como false (0). Isso elimina a avaliação desnecessária do segundo operando quando a expressão OR lógica for true.
printf( "%d" , (x == w || x == y || x == z) );
No exemplo acima, se x for igual a w, y ou z, o segundo argumento para a função printf será avaliado como true e o valor 1 será impresso. Caso contrário, será avaliado como false, e o valor 0 será impresso. Assim que uma das condições for avaliada como true, a avaliação é encerrada.
Palavra-chave do operador para ||
O operador or é o equivalente de texto de ||. Há duas maneiras de acessar o operador or em seus programas: incluindo o arquivo de cabeçalho iso646.h ou compilando com a opção do compilador /Za (Desabilita Extensões de Linguagem).
Exemplo
// 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;
}