Der oder-Operator in C++
Dieser Artikel erklärt ODER
-Operatoren in C++ und ihre Anwendungsfälle. Wie jede andere Programmiersprache hat C++ ein logisches ODER
und ein bitweises ODER
; Schauen wir sie uns nacheinander an.
der logische ODER
-Operator in C++
Wir verwenden einen logischen Operator, um zwei oder mehr Operanden/Ausdrücke zu vergleichen und true
oder false
Werte zurückzugeben. Diese sind in Entscheidungsszenarien nützlich.
Logisches ODER
wird durch ||
dargestellt.
Syntax:
expression1 || expression2
Der logische ODER
-Operator ||
kehrt zurück:
true
- wenn mindestens ein Operand oder Ausdruck wahr ist.false
– genau dann, wenn alle Operanden falsch sind.
Die Wahrheitstabelle des logischen ODER
||
.
A
und B
sind Operanden.
A | B | A||B |
---|---|---|
F | F | F |
F | T | T |
T | F | T |
T | T | T |
Wir können nur sehen, wenn beide Operanden false
sind; wir erhalten die Ausgabe als false
. In C oder C++ ist false
null und true
ein beliebiger Wert ungleich null; Im Allgemeinen wird es durch die Ganzzahl 1
dargestellt.
Beispiel:
Mal sehen, wie das logische ODER
bei der Entscheidungsfindung verwendet wird. Stellen Sie sich eine Situation vor, in der ein Benutzer einen Kleinbuchstaben eingibt und wissen möchte, ob es sich um einen Vokal
oder einen Konsonanten
handelt.
#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";
}
Wenn die Eingabe z
ist, sind alle OR
-Bedingungen innerhalb der if
-Anweisung false
, sie wird als false
ausgewertet und die if
-Bedingung schlägt fehl. Dann wird der else
-Block ausgeführt.
Ausgabe:
z
It's a consonant
Eine interessante Eigenschaft des logischen ODER
ist, dass wenn der linke Teil true
ist, der rechte Teil nicht ausgewertet wird, weil jetzt sowieso der ganze Ausdruck wahr ist.
Bedeutung in expression1||expression2
Wenn expression1
true
ist, wird expression2
nicht ausgewertet.
Beispielcode:
#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;
}
Ausgabe:
Value of a 25
Value of b 1
Value of x 6789
Value of c 1
Erläuterung: (a=a>5?25:0)
wird als true
ausgewertet, weil a
grösser als 5 ist und 25 a
zugeordnet ist, und in C++ anders als 0(false)
, alle Werte gelten als true
.
Da der linke Teil des logischen ODER
true
ist, wird die rechte Seite nicht ausgewertet; der Gesamtausdruckswert ist true
, also 1
, und wird b
zugewiesen.
Nun Teil zwei des Programms c = (x=0) || (x=6789)
, LHS x=0
bedeutet false
, also wird RHS x=6789
ausgewertet, da jeder andere Wert als Null true
ist, wird der gesamte Ausdruck jetzt wahr, und 1
ist c
zugeordnet.
der bitweise ODER
-Operator in C++
Ein einzelner vertikaler Strich |
steht für das bitweise ODER
. Der Hauptunterschied zwischen logischen und bitweisen Operatoren besteht darin, dass das Ergebnis logischer Operatoren (&&
, ||
und !
) entweder 0(false)
oder 1(true)
ist, aber das Ergebnis von Ein bitweiser Operator ist ein ganzzahliger Wert.
Das |
(bitweises OR
) in C oder C++ nimmt zwei Zahlen als Operanden und macht OR
an jedem Bit von zwei Zahlen und gibt das Ergebnis zurück.
Beispielcode:
#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;
}
Ausgabe:
Value of c 1
value of d 6
Erläuterung: Für a||b, a=2
, was ein Wert ungleich Null ist, wird als true
bewertet, also wird der Wert von c
zu true
.
Für a|b
müssen wir zuerst a
und b
ins Binärformat umwandeln und dann ODER
auf jedes Bit anwenden, a = 010
und b = 100
binär, und wenn wir anwenden ODER
auf jedem Bit erhalten wir als Ausgabe eine 6, die der Variablen d
zugewiesen wird.
0 1 0 this is a=2
1 0 0 this is b=4
-------
1 1 0 //this is 6 in decimal
-------
Fazit
In diesem Artikel haben wir etwas über logische und bitweise ODER
-Operatoren gelernt.
Wir haben verstanden, dass das logische ODER
für die Entscheidungsfindung verwendet wird und alle Operanden/Ausdrücke ungleich Null als 1(true)
betrachtet werden, während beim bitweisen ODER
die Operation auf jedes Bit angewendet wird und ein ganzzahliger Wert ist als Ausgabe zurückgegeben.