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

时间:2015-08-10 19:57:49

标签: ios objective-c short-circuiting

所以我有一个if语句的3个条件,我想在检查第三个之前确保前两个是真的。这里有一些伪代码证明了我的意思:

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

这相当于:

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

或者我们可以不依赖于短路评估中的条件排序吗?

提前致谢!

2 个答案:

答案 0 :(得分:3)

是的,短路会遵守订单,只会在发现故障之前进行评估(因此,当它知道无论以后的检查可能如何评估时,它都可能再次成功)。

答案 1 :(得分:0)

如果您需要全部3才能执行代码,那么两者都符合您的目的。 字面上该语句读取A和B和C是否为真,执行该代码。但是,如果您想要做A,B为真且C为假的事情,那么您将需要使用第二段代码并添加else语句