Share via


Operatore OR logico: ||

Sintassi

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

Osservazioni:

L'operatore OR logico (||) restituisce il valore true booleano se uno o entrambi gli operandi è true e restituisce false in caso contrario. Gli operandi vengono convertiti in modo implicito nel tipo bool prima della valutazione e il risultato è di tipo bool. L'operatore OR logico presenta un'associatività da sinistra a destra.

Gli operandi dell'operatore OR logico non devono avere lo stesso tipo, ma devono essere di tipo booleano, integrale o puntatore. Gli operandi sono in genere espressioni di uguaglianza o relazionali.

Il primo operando viene completamente restituito e tutti gli effetti collaterali vengono completati prima di continuare la restituzione dell'espressione OR logica.

Il secondo operando viene valutato solo se il primo operando restituisce false, perché la valutazione non è necessaria quando l'espressione OR logica è true. È noto come valutazione a corto circuito .

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

Nell'esempio precedente, se x è uguale a w, yo z, il secondo argomento della printf funzione restituisce true, che viene quindi alzato di livello a un numero intero e viene stampato il valore 1. In caso contrario, restituisce false e viene stampato il valore 0. Non appena una delle condizioni restituisce true, la valutazione si arresta.

Parola chiave operator per ||

C++ specifica or come ortografia alternativa per ||. In C, l'ortografia alternativa viene fornita come macro nell'intestazione <iso646.h> . In C++, l'ortografia alternativa è una parola chiave; l'uso di <iso646.h> o del ciso646> equivalente <C++ è deprecato. In Microsoft C++, l'opzione del /permissive- compilatore o /Za è necessaria per abilitare l'ortografia alternativa.

Esempio

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

Vedi anche

Operatori, precedenza e associatività predefiniti C++
Operatori logici C