短路评估中评估条件的顺序是什么?



所以我有一个if语句的3个条件,我想确保前两个是真的,然后再检查第三个。下面是一些伪代码来演示我的意思:

if (A && B && C) {
   doSomething
}

是否等价于:

if (A && B) {
   if (C) {
      doSomething
   }
}

或者我们可以不依赖于短路求值中条件的顺序吗?

提前感谢!

是的,短路尊重顺序,只会计算直到发现失败(因此,当它知道它不可能再成功时,无论将来的任何检查可能如何计算,都要走捷径)。

如果您需要这三个都为真来执行代码,那么这两个都符合您的目的。从字面上看,该语句的意思是,如果A, B和C都为真,执行该代码。然而,如果您想要做一些事情,其中A,B为真,C为假,则需要使用第二段代码并添加else语句

最新更新