Operator logiczny OR: ||

Składnia

wyrażenie logiczne lub||wyrażenie logiczne i wyrażenie

Uwagi

Operator logiczny OR () zwraca wartość logiczną,|| jeśli albo oba operandy są true i zwracają false w przeciwnym razie.true Operandy są niejawnie konwertowane na typ bool przed oceną, a wynik jest typu bool. Wartość logiczna OR ma skojarzenie od lewej do prawej.

Operandy operatora logicznego OR nie muszą mieć tego samego typu, ale muszą być typu logicznego, całkowitego lub wskaźnika. Operandy są często wyrażeniami relacyjnymi lub równości.

Pierwszy operand jest obliczany całkowicie i wszystkie skutki uboczne są wykonywane przed kontynuowaniem oceny logicznego wyrażenia OR.

Drugi operand jest obliczany tylko wtedy, gdy pierwszy operand daje wartość false, ponieważ ocena nie jest wymagana, gdy wyrażenie logiczne OR ma wartość true. Jest znany jako ocena zwarciowa .

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

W powyższym przykładzie, jeśli x jest równy wwartości , ylub z, drugi argument printf funkcji daje wartość true, która jest następnie podwyższona do liczby całkowitej, a wartość 1 jest drukowana. W przeciwnym razie oblicza wartość , false a wartość 0 jest drukowana. Gdy tylko jeden z warunków zostanie obliczony na truewartość , ocena zostanie zatrzymana.

Operator — słowo kluczowe dla ||

Język C++ określa or jako alternatywną pisownię dla elementu ||. W języku C alternatywna pisownia jest dostarczana jako makro w nagłówku <iso646.h> . W języku C++, alternatywna pisownia jest słowem kluczowym; użycie iso646.h> lub równoważnego <<ciso646> języka C++ jest przestarzałe. W języku Microsoft C++ /permissive- opcja lub /Za kompilatora jest wymagana do włączenia alternatywnej pisowni.

Przykład

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

Zobacz też

Wbudowane operatory, pierwszeństwo i kojarzenie języka C++
Operatory logiczne języka C