With logical short-circuiting, the second operand, expr2
,
is evaluated only when the result is not fully determined by the first
operand, expr1
.
Due to the properties of logical AND and OR, the result of a
logical expression is sometimes fully determined before evaluating
all of the conditions. The logical and
operator
returns logical 0
(false
) if
even a single condition in the expression is false. The logical or
operator
returns logical 1
(true
) if
even a single condition in the expression is true. When the evaluation
of a logical expression terminates early by encountering one of these
values, the expression is said to have short-circuited.
For example, in the expression A && B
, MATLAB does
not evaluate condition B
at all if condition A
is
false. If A
is false, then the value of B
does
not change the outcome of the operation.
When you use the element-wise &
and |
operators
in the context of an if
or while
loop
expression (and only in that context), they use
short-circuiting to evaluate expressions.
Note:
Always use the && and || operators
to enable short-circuit evaluation. Using the & and | operators
for short-circuiting can yield unexpected results when the expressions
do not evaluate to logical scalars. |