通过逻辑短路,第二个操作数,expr2
,仅当结果不是完全由第一个操作数确定时才计算,expr1
.
由于逻辑与和或的属性,逻辑表达式的结果有时是在计算所有条件之前完全确定的。逻辑而且
运算符返回逻辑0
(假
),如果表达式中甚至有一个条件为假。逻辑或
运算符返回逻辑1
(真正的
),只要表达式中有一个条件为真。当逻辑表达式的求值因遇到这些值之一而提前终止时,该表达式被称为具有短路.
例如,在表达式中A & b
, MATLAB®不评估条件B
在所有if条件下一个
是假的。如果一个
是假的,那么值呢B
不会改变操作的结果。
当您使用元素时&
而且|
的上下文中的操作符如果
或而
循环表达式(和只有在这种情况下),它们使用短路来求表达式的值。
请注意
总是使用& &
而且||
启用短路评估的操作符。使用&
而且|
当表达式不计算为逻辑标量时,用于短路的运算符可能产生意想不到的结果。