在MATLAB中&
和&&
逻辑运算符有什么区别?
单个&符是逻辑AND运算符。双&符&&还是一个逻辑AND运算符,采用短路行为。短路仅表示仅当第一个操作数(左侧)未完全确定结果时才评估第二个操作数(右侧)
A和B(评估A和B)
A && B(仅当A为真时才评估B)
[&&
和||
]接受标量输入,并且始终短路。 |
和&
仅在if / while语句中接受数组输入并短路。对于分配,后者不会短路。
[正如其他人已经提到的,&
是logical AND operator,&&
是short-circuit AND operator。它们在计算操作数的方式上有所不同以及它们是否对数组或标量进行操作:
都是逻辑与运算。尽管&&是“短路”运算符。从MATLAB文档:
类似于其他语言,&
是逻辑按位运算符,而&&
是逻辑运算。
&&和||是在标量上运行的short circuit运算符。 &和|仅在use short-circuiting或if
循环表达式的上下文中对数组和while
进行运算。
构造条件语句(IF,WHILE等)中使用的参数时的一个好的经验法则是总是