С логическим замыканием накоротко второй операнд, expr2
, оценен только, когда результат не полностью определяется первым операндом, expr1
.
Из-за свойств логического AND и OR, результат логического выражения иногда полностью определяется прежде, чем оценить все условия. Логический оператор and
возвращает логический 0
(false
), если даже одно условие в выражении является ложным. Логический оператор or
возвращает логический 1
(true
), если даже одно условие в выражении верно. Когда оценка логического выражения останавливается рано путем обнаружения с одним из этих значений, выражение, как говорят, закоротило.
Например, в выражении A && B
, MATLAB® не оценивает условие B
вообще, если условие A
является ложным. Если A
является ложным, то значение B
не изменяет результат операции.
Когда вы используете поэлементный &
и операторы |
в контексте if
или выражения цикла while
(и только в том контексте), они используют замыкание накоротко, чтобы выполнить выражения.
Примечание
Всегда используйте &&
и операторы ||
, чтобы включить оценку короткой схемы. Используя &
и операторы |
для замыкания накоротко может привести к неожиданным результатам, когда выражения не оценивают к логическим скалярам.