所以我有一个if语句的3个条件,我想确保前两个是真的,然后再检查第三个。下面是一些伪代码来演示我的意思:
if (A && B && C) {
doSomething
}
是否等价于:
if (A && B) {
if (C) {
doSomething
}
}
或者我们可以不依赖于短路求值中条件的顺序吗?
提前感谢!
是的,短路尊重顺序,只会计算直到发现失败(因此,当它知道它不可能再成功时,无论将来的任何检查可能如何计算,都要走捷径)。
如果您需要这三个都为真来执行代码,那么这两个都符合您的目的。从字面上看,该语句的意思是,如果A, B和C都为真,执行该代码。然而,如果您想要做一些事情,其中A,B为真,C为假,则需要使用第二段代码并添加else语句