Logický operátor OR: ||
logical-or-expression || logical-and-expression
Poznámky
Logický operátor OR (||) vrátí logickou hodnotu true, je-li kterýkoli z operandů (nebo oba) vyhodnocen na hodnotu true, jinak vrátí hodnotu false.Operandy jsou před vyhodnocením implicitně převáděny na typ bool, přičemž výsledek je také typu bool.Logická operace OR je asociativní zleva doprava.
Operandy logického operátoru OR nemusí být stejného typu, musí však být typy celého čísla nebo ukazatele.Operandy jsou obvykle relační výrazy nebo výrazy rovnosti.
První operand je zcela vyhodnocen a před pokračováním ve vyhodnocování logického výrazu OR jsou dokončeny všechny vedlejší účinky.
Druhý operand je vyhodnocen pouze v případě, že je první operand vyhodnocen na hodnotu false (0).Tím jsou odstraněna nepotřebná vyhodnocení druhého operandu, je-li logický výraz OR vyhodnocen na hodnotu true.
printf( "%d" , (x == w || x == y || x == z) );
Rovná-li se v příkladu výše proměnná x proměnné w, y nebo z, je druhý argument funkce printf vyhodnocen na hodnotu true a dojde k vypsání hodnoty 1.V opačném případě je vyhodnocen jako false a je vypsána hodnota 0.Jakmile je jedna z podmínek vyhodnocena jako true, vyhodnocení je ukončeno.
Klíčové slovo pro operátor ||
Operátor or je textovým ekvivalentem zápisu ||.V aplikacích existují dva způsoby přístupu k operátoru or: Zahrnutím souboru hlaviček iso646.h nebo kompilací s možností kompilátoru /Za (zakáže rozšíření jazyka).
Příklad
// 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;
}