Logischer OR-Operator: ||

Syntax

logischer oder ausdruckslogischer||Ausdruck

Hinweise

Der logische OR-Operator (||) gibt den booleschen Wert true zurück, wenn entweder oder beide Operanden vorhanden sind true und andernfalls zurückgegeben wird false . Die Operanden werden implizit vor der Auswertung in typkonvertiert bool , und das Ergebnis ist vom Typ bool. Das logische OR weist eine Assoziativität von links nach rechts auf.

Die Operanden für den logischen OR-Operator müssen nicht denselben Typ aufweisen, sie müssen jedoch boolescher, integraler oder Zeigertyp sein. Die Operanden sind im Allgemeinen relationale oder Gleichheitsausdrücke.

Der erste Operand wird vollständig ausgewertet und alle Nebeneffekte werden abgeschlossen, bevor die Auswertung des logischen OR-Ausdrucks fortgesetzt wird.

Der zweite Operand wird nur ausgewertet, wenn der erste Operand ausgewertet falsewird, da die Auswertung nicht erforderlich ist, wenn der logische OR-Ausdruck ist true. Es wird als Kurzschlussauswertung bezeichnet.

printf( "%d" , (x == w || x == y || x == z) );

Wenn das zweite Argument der Funktion im obigen Beispiel x gleich einem woder zydem zweiten Argument der printf Funktion isttrue, das dann zu einer ganzen Zahl heraufgestuft wird und der Wert 1 gedruckt wird. Andernfalls wird false der Wert 0 ausgewertet, und der Wert 0 wird gedruckt. Sobald eine der Bedingungen ausgewertet wird, stoppt truedie Auswertung.

Operator Schlüsselwort (keyword) für||

C++ gibt or als alternative Schreibweise für ||. In C wird die alternative Schreibweise als Makro im <Iso646.h-Header> bereitgestellt. In C++ ist die alternative Schreibweise ein Schlüsselwort (keyword); die Verwendung von <iso646.h> oder das C++-Äquivalent <ciso646> ist veraltet. In Microsoft C++ ist die Option oder /Za die /permissive- Compileroption erforderlich, um die alternative Schreibweise zu aktivieren.

Beispiel

// 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;
}

Siehe auch

Integrierte C++-Operatoren, Rangfolge und Zuordnung
Logische C-Operatoren