主要内容

逻辑运算符:Short-Circuit && || .

具有短路的逻辑操作

描述

例子

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

例子

expr1 | | expr2表示一个逻辑操作,使用短路的行为.也就是说,expr2如果expr1是合乎逻辑的1符合事实的).每个表达式的计算结果必须是标量逻辑结果。

例子

全部折叠

创建两个向量。

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

使用短路断路器或带断路器的操作员XY返回一个错误。短路运算符仅在标量逻辑条件下操作。

使用任何全部的函数将每个向量简化为单个逻辑条件。

任何(X)| |所有(Y)
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”},“格式”[])
=结构体字段:文件:'myGraph'格式:[]

短路表达式在如果当你想要多个条件为真时。条件可以以这样一种方式构建,即只有在第一个表达式为真时才对第二个表达式求值。

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

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

第一个条件测试“格式”结构中字段的名称是什么年代.然后,第二个语句测试是否总体安排字段是空的。第二个条件的真实性取决于第一个条件。如果第一个条件不为真,第二个条件就不可能为真。自年代有一个名为的空字段“格式”,则执行body语句并赋值S.Format价值“.png”

更多关于

全部折叠

逻辑短路

通过逻辑短路,第二个操作数,expr2,仅当结果不是由第一个操作数完全确定时才计算,expr1

由于逻辑与和或的属性,逻辑表达式的结果有时在计算所有条件之前就完全确定了。逻辑操作符返回逻辑0),如果表达式中甚至有一个条件为假。逻辑操作符返回逻辑1符合事实的),如果表达式中甚至有一个条件为真。当一个逻辑表达式的求值因遇到这些值之一而提前终止时,该表达式被称为具有短路

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

当你使用元素时|对象上下文中的操作符如果虽然循环表达式(只有在这种情况下),它们使用短路来计算表达式。

请注意

总是使用&&||操作,使短路评估。使用|当表达式的计算结果不是逻辑标量时,短路运算符可能会产生意外的结果。

扩展功能

在R2006a之前引入