Operador OR lógico: ||
Sintaxe
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
caso contrário. 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 do operador OR lógico não precisam ser do mesmo tipo, mas devem ser de tipo booleano, 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 será avaliado somente se o primeiro operando for avaliado como false
, porque a avaliação não é necessária quando a expressão OR lógica é true
. Isso é conhecido como avaliação de curto-circuito.
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
, que é então promovido a um inteiro e o valor 1 é 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 C++ especifica or
como uma ortografia alternativa para ||
. Em C, a ortografia alternativa é fornecida como uma macro no cabeçalho <iso646.h>. No C++, a ortografia alternativa é uma palavra-chave; o uso de <iso646.h> ou do equivalente do C++ <ciso646> foi preterido. No Microsoft C++, a opção do compilador /permissive-
ou /Za
é necessária para habilitar a ortografia alternativa.
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;
}
Confira também
Operadores internos, precedência e associatividade no C++
Operadores lógicos C
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de