Short-Circuit AND, &&
具有短路功能的逻辑 AND
说明
示例
指定依赖逻辑条件
指定第二个条件依赖于第一个条件的一个逻辑语句。在以下语句中,如果除数 b
为零,则计算右侧的关系没有意义。
b = 1; a = 20; x = (b ~= 0) && (a/b > 18.5)
x = logical
1
结果为逻辑值 1
(true
)。然而,如果 (b ~= 0)
的计算结果为 false
,MATLAB® 将假定整个表达式为 false
,并提早终止对表达式的计算。
指定 b = 0
并计算相同表达式。
b = 0; x = (b ~= 0) && (a/b > 18.5)
x = logical
0
结果为逻辑值 0
(false
)。第一个元素的计算结果为逻辑值 0
(false
),这样表达式将短路。
更改结构体字段值
创建一个包含名为 'File'
和 'Format'
的字段的结构体。
S = struct('File',{'myGraph'},'Format',[])
S = struct with fields:
File: 'myGraph'
Format: []
如果希望多个条件为 true,则可以在 if
语句中使用短路表达式。一个条件可以基于另一个条件构建,在这种情况下,只有第一个表达式为 true 时才会计算第二个表达式。
指定一个仅当 S
包含一个名为 'Format'
的空字段时才会执行的 if
语句。
if isfield(S,'Format') && isempty(S.Format) S.Format = '.png'; end S
S = struct with fields:
File: 'myGraph'
Format: '.png'
第一个条件测试 'Format'
是否为结构体 S
中某字段的名称。然后,第二个语句测试 Format
字段是否为空。第二个条件是否为真取决于第一个条件。如果第一个条件不为 true,则第二个条件永远不会为 true。由于 S
包含一个名为 'Format'
的空字段,主体语句将执行 S.Format
并为其分配值 '.png'
。
输入参数
expr1
, expr2
— 逻辑表达式
逻辑标量
逻辑表达式,指定为计算结果为逻辑标量的任何有效的 MATLAB® 表达式。
示例: isvector(x) && isreal(x)
示例: (x > 1) && (x < 10)
数据类型: logical
详细信息
逻辑短路
使用逻辑短路功能时,一旦结果完全确定,逻辑表达式的计算可以提前终止。由于逻辑 AND 和 OR 的属性,有时在计算所有条件之前就可完全确定逻辑达式的结果:
即使表达式中只有单个条件为 false,逻辑
and
运算符也会返回逻辑值0
(false
)。即使表达式中只有单个条件为 true,逻辑
or
运算符也会返回逻辑值1
(true
)。
如果计算逻辑表达式由于遇到这些值之一而提前终止,则该表达式可以认为是短路。如果使用得当,这种方法可以让您在代码中高效地执行复杂的比较。
例如,在表达式 A && B
中,如果条件 A
为 false,MATLAB 将根本不计算条件 B
。一旦确定 A
为 false,则 B
的值不会改变运算的结果。
提示
当在
if
或while
循环表达式的上下文(并且仅在该上下文中)使用按元素&
和|
运算符时,这些运算符使用短路来计算表达式的结果。不过,您应始终使用
&&
和||
运算符启用短路评估。当表达式的计算结果不为逻辑标量时,使用&
和|
运算符实现短路会产生意外结果。
扩展功能
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)