L'opérateur ou en C++
Cet article explique les opérateurs OU
en C++ et leurs cas d’utilisation. Comme tout autre langage de programmation, C++ a un OU
logique et un OU
au niveau du bit ; regardons-les un par un.
l’opérateur logique OR
en C++
Nous utilisons un opérateur logique pour comparer deux ou plusieurs opérandes/expressions et renvoyer des valeurs true
ou false
. Ceux-ci sont utiles dans les scénarios de prise de décision.
Le OU
logique est représenté par ||
.
Syntaxe:
expression1 || expression2
L’opérateur logique OR
||
renvoie :
true
- si au moins un opérande ou une expression est vrai.false
- si et seulement si tous les opérandes sont faux.
La table de vérité du OU
logique ||
.
A
et B
sont des opérandes.
A | B | A||B |
---|---|---|
F | F | F |
F | T | T |
T | F | T |
T | T | T |
Nous ne pouvons voir que lorsque les deux opérandes sont false
; nous obtenons la sortie false
. En C ou C++, false
est égal à zéro et true
est toute valeur non nulle ; généralement, il est représenté par l’entier 1
.
Exemple:
Voyons comment le OU
logique est utilisé dans la prise de décision. Considérez une situation où un utilisateur saisit un caractère minuscule et veut savoir s’il s’agit d’une voyelle ou d’une consonne.
#include <iostream>
using namespace std;
int main() {
char ch;
cin >> ch;
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
cout << "It's is a VOWEL.";
} else
cout << "It's a consonant";
}
Si l’entrée est z
, toutes les conditions OR
à l’intérieur de l’instruction if
sont false
, elle est évaluée comme false
et la condition if
échoue. Ensuite, le bloc else
est exécuté.
Production:
z
It's a consonant
Une propriété intéressante à retenir à propos du OU
logique est que si la partie de gauche est true
, la partie de droite n’est pas évaluée car toute l’expression est maintenant vraie de toute façon.
Signification dans expression1||expression2
si expression1
vaut true
, expression2
n’est pas évaluée.
Exemple de code :
#include <iostream>
using namespace std;
int main() {
int a = 10;
int b = (a = a > 5 ? 25 : 0) || 0;
cout << "Value of a " << a << endl;
cout << "Value of b " << b << endl;
// part two
int x = 9;
int c = (x = 0) || (x = 6789);
cout << "Value of x " << x << endl;
cout << "Value of c " << c << endl;
}
Production:
Value of a 25
Value of b 1
Value of x 6789
Value of c 1
Explication : (a=a>5?25:0)
est évalué comme true
car a
est supérieur à 5 et 25 est affecté à a
, et en C++ autre que 0(false)
, toutes les valeurs sont considérées comme true
.
Puisque la partie gauche du OU
logique est true
, la partie droite n’est pas évaluée ; la valeur globale de l’expression est true
, c’est-à-dire 1
, et elle est affectée à b
.
Maintenant la deuxième partie du programme c = (x=0) || (x=6789)
, LHS x=0
signifie que c’est false
, donc RHS est évalué x=6789
puisque toute valeur autre que zéro est true
, l’expression entière devient vraie maintenant, et 1
est assigné à c
.
l’opérateur OU
au niveau du bit en C++
Une seule ligne verticale |
représente le OU
au niveau du bit. La principale différence entre les opérateurs logiques et au niveau du bit est que le résultat des opérateurs logiques (&&
, ||
, et !
) est soit 0(false)
soit 1(true)
, mais le résultat de un opérateur au niveau du bit est une valeur entière.
Le |
(bitwise OR
) en C ou C++ prend deux nombres comme opérandes et fait OR
sur chaque bit de deux nombres et renvoie le résultat.
Exemple de code :
#include <iostream>
using namespace std;
int main() {
int a = 2;
int b = 4;
int c = a || b; // logical OR
int d = a | b; // bitwise OR
cout << "Value of c " << c << endl;
cout << "value of d " << d << endl;
}
Production:
Value of c 1
value of d 6
Explication : Pour a||b, a=2
, qui est une valeur non nulle, est évalué comme true
, donc la valeur de c
devient true
.
Pour a|b
, il faut d’abord convertir a
et b
en binaire puis appliquer OU
sur chaque bit, a = 010
et b = 100
en binaire, et si on applique OU
sur chaque bit, nous obtenons la sortie 6, qui est affectée à la variable d
.
0 1 0 this is a=2
1 0 0 this is b=4
-------
1 1 0 //this is 6 in decimal
-------
Conclusion
Nous avons découvert les opérateurs logiques et OU
au niveau du bit dans cet article.
Nous avons compris que l’opérateur logique OR
est utilisé pour la prise de décision, et que tout opérande/expression non nul est considéré comme 1(true)
, alors que dans l’opérateur binaire OR
, l’opération est appliquée à chaque bit, et une valeur entière est retournée en sortie.