【问题标题】:What order are conditions evaluated in short circuit evaluation在短路评估中评估条件的顺序是什么
【发布时间】:2015-11-02 20:52:45
【问题描述】:

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

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

是否等同于:

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

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

提前致谢!

【问题讨论】:

  • if ((A &&B) && C){},但也可以排序

标签: ios objective-c short-circuiting


【解决方案1】:

是的,短路会遵守顺序,并且只会在发现失败之前进行评估(因此,当它知道无论未来的检查如何评估它都不可能再成功时,才会采取捷径)。

【讨论】:

  • 我需要的完美、准确的答案!我也会在允许的情况下在 8 分钟内接受,感谢您的帮助!
【解决方案2】:

如果您需要所有 3 个都为真才能执行代码,那么两者都适合您的目的。 从字面上看,该语句读取如果 A 和 B 和 C 都为真,则执行该代码。然而,如果你想做一些 A,B 为真而 C 为假的事情,你会想要使用你的第二段代码并添加一个 else 语句

【讨论】:

    猜你喜欢
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 2010-09-18
    • 2015-11-14
    • 2017-01-21
    相关资源
    最近更新 更多