逻辑运算符:短路&& ||

与短路逻辑运算

描述

表达式1 &&表达式2表示逻辑操作时使用短路行为。那是,表达式2未评估,如果表达式1是合乎逻辑0)。每个表达式的值必须为标量逻辑结果。

表达式1 ||表达式2表示逻辑要么操作时使用短路行为。那是,表达式2未评估,如果表达式1是合乎逻辑1真正)。每个表达式的值必须为标量逻辑结果。

例子

全部收缩

创建两个向量。

X = [1 0 0 1 1];Y = [0 0 0 0 0];

使用短路或操作者与Xÿ返回一个错误。短路运营商仅与标量的逻辑条件下工作。

使用任何所有功能分配到每个矢量减少到一个单一的逻辑状态。

任何(X)||盟友)
ANS =合乎逻辑1

表达式是等效于1 OR 0,所以它的计算结果为逻辑1真正)计算仅所述第一条件后,任何(X)

指定第二个条件取决于第一个逻辑语句。在下面的语句,它没有任何意义,以评估如果除数权的关系,b是零。

B = 1;一个= 20;X =(B〜= 0)&&(A / B> 18.5)
X =合乎逻辑1

其结果是合乎逻辑1真正)。但是,如果(B〜= 0)计算结果为,MATLAB®假定整个表达式为和早期终止其表达的评估。

指定B = 0和评价相同的表达。

B = 0;X =(B〜= 0)&&(A / B> 18.5)
X =合乎逻辑0

其结果是合乎逻辑0)。第一条语句的计算结果为逻辑0),因此表达短路。

创建命名字段的结构'文件''格式'

S =结构('文件'{'myGraph'},'格式',[])
S =同场的结构:文件: 'myGraph' 格式:[]

短路表达式是有用的如果当你想多个条件语句是真实的。这些条件可以以这样一种方式,它才有意义,如果第一个表达式为true评估第二表达式建立在彼此。

指定一个如果只有当执行语句小号包含一个名为的空场'格式'

如果isfield(S,'格式')&&的isEmpty(S.Format)S.Format =“巴纽”;结束小号
S =同场的结构:文件:“myGraph”格式:“png格式”

第一个条件测试,如果'格式'在结构的字段的名称小号。第二条语句然后测试是否格式字段为空。第二个条件的真相取决于第一。如果第一个条件不成立的第二个条件永远是正确的。以来小号有一个名为的空场'格式',身体语句执行和受让人S.Format价值“巴纽”

更多关于

全部收缩

逻辑短路

与逻辑短路,第二操作数,表达式2仅当结果没有完全由第一操作数确定的,进行评价时,表达式1

由于逻辑AND和OR的属性,逻辑表达式的结果有时会完全评估所有条件之前确定。逻辑操作回报逻辑0)如果即使在表达单一条件是假的。逻辑要么操作回报逻辑1真正)如果即使在表达单一条件为真。当逻辑表达式的评估通过遇到这些值中的一个早期终止时,表达被认为具有短路

例如,在表达一个&&乙,MATLAB®不计算条件在所有如果条件一个是假的。如果一个为假,则该值不改变操作的结果。

当您使用逐元素|在的情况下运营商如果要么循环表达式(和只要在这种情况下),他们使用短路计算表达式。

注意

始终使用&&||运营商,以使短路评价。使用|对于短路运营商可以产生意想不到的结果时表达式不计算逻辑标量。

R2006a前推出