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

带短路的逻辑操作

描述

例子

expr1 & & expr2表示一个逻辑操作,使用短路的行为。也就是说,expr2不评估,如果expr1是合乎逻辑的0()。每个表达式必须计算为一个标量逻辑结果。

例子

expr1 | | expr2表示一个逻辑要么操作,使用短路的行为。也就是说,expr2不评估,如果expr1是合乎逻辑的1(真正)。每个表达式必须计算为一个标量逻辑结果。

例子

全部折叠

创建两个向量。

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

使用短路或操作者与XY返回一个错误。短路运算符仅在标量逻辑条件下操作。

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

任何(X)||盟友)
ans =逻辑1

表达式等于1或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'格式:[]

短路表达式在如果当你想要多个条件为真时。条件可以建立在另一个表达式之上,只有当第一个表达式为真时,才有意义地计算第二个表达式。

指定一个如果只在年代包含一个名为的空场“格式”

如果isfield(年代,“格式”) && isempty(S. format)格式=“巴纽”;结束年代
S =结构体字段:文件:'myGraph'格式:'.png'

第一个条件测试是否“格式”结构中字段的名称年代。然后,第二个语句测试格式字段是空的。第二个条件的真实性取决于第一个条件。如果第一个条件不成立,第二个条件永远不会成立。自年代有一个名为的空场“格式”时,主体语句执行并赋值S.Format的值“巴纽”

更多关于

全部折叠

逻辑短路

逻辑短路,第二个操作数,expr2仅当结果没有完全由第一操作数确定的,进行评价时,expr1

由于逻辑和和或的属性,逻辑表达式的结果有时在评估所有条件之前被完全确定。逻辑操作符返回逻辑0(),如果表达式中有一个条件为假。逻辑要么操作符返回逻辑1(真正),如果表达式中有一个条件为真。当逻辑表达式的求值因遇到这些值之一而提前终止时,该表达式称为具有短路

例如,在表达式中一个&&乙,MATLAB®不评估条件B如果条件一个是假的。如果一个是假的,那么价值是多少B不会改变手术的结果。

当你使用元素的时候&|的上下文中的操作符如果要么循环表达式(只有在该上下文中),它们使用短路来求表达式的值。

请注意

总是使用& &||操作人员启用短路评估。使用&|对于短路运营商可以产生意想不到的结果时表达式不计算逻辑标量。

R2006a前推出