主要内容

短路或||

有短路的逻辑或

描述

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

例子

全部折叠

创建两个向量。

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

使用短路或运算符X而且Y返回一个错误。短路运算符只使用标量逻辑条件。

使用任何而且所有函数将每个向量简化为单个逻辑条件。

任何(X) | |所有(Y)
ans =逻辑1

表达式等价于1或0,所以它的计算结果符合逻辑1真正的),只计算第一个条件后,任何(X)

输入参数

全部折叠

逻辑表达式,指定为任何有效的MATLAB®求值为逻辑标量的表达式。

例子:isscalar (x) | | isvector (x)

例子:(x < -1)

数据类型:逻辑

更多关于

全部折叠

逻辑短路

逻辑短路,一旦结果完全确定,逻辑表达式的求值可以提前终止。由于逻辑与和或的属性,逻辑表达式的结果有时在计算所有条件之前完全确定:

  • 逻辑而且操作符返回逻辑0),如果表达式中甚至有一个条件为假。

  • 逻辑操作符返回逻辑1真正的),只要表达式中有一个条件为真。

当逻辑表达式的求值因遇到这些值之一而提前终止时,该表达式被称为具有短路.如果使用得当,这种技术可以使您在代码中高效地执行复杂的比较。

例如,在表达式中& & B, MATLAB不计算条件B在所有if条件下一个是假的。一旦确定一个是假的,值B不能更改操作的结果。

提示

  • 当您使用元素时而且|的上下文中的操作符如果循环表达式(只有在这种情况下),它们使用短路来求表达式的值。

    但是,您应该始终使用& &而且||启用短路评估的操作符。使用而且|当表达式不计算为逻辑标量时,用于短路的运算符可能产生意想不到的结果。

扩展功能

版本历史

之前介绍过的R2006a

Baidu
map