Operatore OR logico: ||
logical-or-expression || logical-and-expression
Note
L'operatore OR logico (||) restituisce il valore booleano true 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 è del tipo bool. L'operatore OR logico presenta un'associatività da sinistra a destra.
Gli operandi dell'operatore OR logico non devono essere dello stesso tipo, ma devono essere di tipo integrale o di tipo 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 restituito solo se il primo operando restituisce false (0). In questo modo si evita la valutazione del secondo operando quando l'espressione OR logica è true.
printf( "%d" , (x == w || x == y || x == z) );
Nell'esempio precedente, se x è uguale a w, y o a z, il secondo argomento della funzione printf restituisce true e il valore 1 viene stampato. In caso contrario, restituisce false e il valore 0 viene formattato. Appena una delle condizioni restituisce true, la restituzione viene interrotta.
Parola chiave operator per ||
L'operatore or è il testo equivalente di ||. Esistono due modi per accedere all'operatore or nei programmi: includere il file di intestazione iso646.h o compilare l'opzione del compilatore /Za (disabilita estensioni linguaggio).
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;
}