【发布时间】:2012-02-15 18:54:37
【问题描述】:
如果我想确保if 语句仅在两个条件都为真时执行,我应该在语句的子句之间使用& 还是&&?
例如,我应该使用
if a == 5 & b == 4
或
if a == 5 && b == 4
我知道前者是元素方面的,后者能够短路,但我不清楚这意味着什么。
【问题讨论】:
如果我想确保if 语句仅在两个条件都为真时执行,我应该在语句的子句之间使用& 还是&&?
例如,我应该使用
if a == 5 & b == 4
或
if a == 5 && b == 4
我知道前者是元素方面的,后者能够短路,但我不清楚这意味着什么。
【问题讨论】:
对于标量布尔条件,我建议您使用&&。短路意味着如果第一个条件为 false,则不评估第二个条件,但无论如何您都知道结果为假。 & 或 && 仅当表达式的两边都为真时才会为真,但如果操作数之一是矩阵,& 可以返回矩阵结果。
另外,我相信在 Matlab 中比较应该使用==,而不是=(赋值)。
【讨论】: