Opérateur OR logique : ||
Syntaxe
logical-or-expression
||
logical-and-expression
Notes
L’opérateur OR logique (||
) retourne la valeur booléenne true
si un ou les deux opérandes ont la valeur true
, sinon il retourne false
. Les opérandes sont convertis implicitement vers le type bool
avant leur évaluation, et le résultat est de type bool
. L'opérateur OR logique présente une associativité de gauche à droite.
Les opérandes vers l’opérateur OR logique n’ont pas à disposer du même type, mais ils doivent avoir un type booléen, intégral ou pointeur. Les opérandes sont souvent des expressions relationnelles ou d’égalité.
Le premier opérande doit être complètement évalué et tous les effets secondaires terminés pour que l’évaluation de l’expression OR logique se poursuive.
Le deuxième opérande n’est évalué que si le premier opérande prend la valeur false
, car l’évaluation n’est pas nécessaire lorsque l’expression OR logique a la valeur true
. C’est connu sous le nom d’évaluation court-circuit.
printf( "%d" , (x == w || x == y || x == z) );
Dans l’exemple ci-dessus, si x
est égal à w
, y
ou z
, le second argument vers la fonction printf
analyse true
, promu ensuite en entier et la valeur 1 est affichée. Dans le cas contraire, il équivaut à false
et la valeur 0 est affichée. Dès que l’une des conditions équivaut à true
, l’évaluation s’arrête.
Mot clé de l’opérateur pour ||
C++ spécifie or
comme orthographe alternative pour ||
. En C, l’orthographe alternative est fournie sous forme de macro dans l’en-tête <iso646.h>. En C++, l’orthographe alternative est un mot clé. L’utilisation de <iso646.h> ou son équivalent C++ <ciso646> est déconseillée. Si vous utilisez Microsoft C++, l’option de compilateur /permissive-
ou /Za
est nécessaire pour activer l’orthographe alternative.
Exemple
// 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;
}
Voir aussi
Opérateurs intégrés, priorité et associativité C++
Opérateurs logiques C