L'opérateur ou en C++

Suraj P 12 octobre 2023
  1. l’opérateur logique OR en C++
  2. l’opérateur OU au niveau du bit en C++
  3. Conclusion
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 :

  1. true - si au moins un opérande ou une expression est vrai.
  2. 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.

Auteur: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub

Article connexe - C++ Operator