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.