Logical OR operator ||
The ||
(logical OR) operator indicates
whether either operand is true.
If either of the operands has a nonzero value,
the result has the value 1
. Otherwise, the result
has the value 0
. The type of the result is int
.
Both operands must have an arithmetic or pointer
type. The usual arithmetic conversions on each operand are performed.
If either
operand has a value of true
, the result has the value true
.
Otherwise, the result has the value false
. Both operands
are implicitly converted to bool
and the result type
is bool
.
Unlike the |
(bitwise inclusive OR) operator,
the ||
operator guarantees left-to-right evaluation
of the operands. If the left operand has a nonzero (or true
)
value, the right operand is not evaluated.
The following examples show how expressions that contain the logical OR operator are evaluated:
Expression | Result |
---|---|
1 || 0 |
true or 1 |
1 || 4 |
true or 1 |
0 || 0 |
false or 0 |
y
: ++x || ++y;
The expression ++y
is not evaluated when
the expression ++x
evaluates to a nonzero (or true
)
quantity.
||
) should not be
confused with the bitwise OR (|
) operator. For example:
1 || 4
evaluates to 1
(or true
)while
1 | 4
evaluates to 5