【问题标题】:if / else / else if statements, a matter of function or style?if / else / else if 语句,功能或样式问题?
【发布时间】:2022-12-07 06:21:20
【问题描述】:

我比较的数据只能有 3 个可能的结果,小于、大于或等于。

因此,最后一条语句可以是 else 或 else / if,并且该块的行为相同:

  if(iter.data === data) {
    return iter;
  } else if(data < iter.data) {
    iter = iter.left;

  // else or else if will suffice here
  } else if(data > iter.data) {
    iter = iter.right;
  }

我是否遗漏了任何功能差异,或者这仅仅是风格问题?

如果只是风格问题,是否有一个很好的风格参考,涵盖了这一点?

【问题讨论】:

  • 切换赋值时,我更喜欢三元表达式。有人说要避免使用 elseif,因为它可能更难阅读,尤其是在嵌套时,但可以肯定的是,对此类逻辑进行编码的所有方法都是有效的,这取决于编码人员或组织的偏好。

标签: javascript algorithm


【解决方案1】:

编译器/解释器不会关心并且无论如何都会优化这些,但从心理负荷的角度来看,else if 意味着另一个比较,而 else 意味着“失败”,大多数代码库会更喜欢后者。

作为一个额外的好处,fall-through 还确保其中一个分支是总是采取。一般来说,一个根本不被采用的分支可能会导致比错误的正在采取的分支。

【讨论】: