Java如何处理IF语句和效率

2024-04-29

我只是好奇 Java 实际是如何工作的if声明。 (注意:当我在下面说“组件”时,我指的是语句检查的各个部分,例如a, b, c)

哪个在计算方面更有效?

if (a && b && c) { do stuff }

or

if (a) {
  if (b) {
    if (c) {
    do stuff }
  }
}

我之所以问这个问题,是因为 Java 在第一个版本中所做的事情很重要。它会检查声明中的每一项内容还是会检查a如果是的话false然后取消检查报表的其余部分?

如果是这种情况,那么将最有可能失败的组件作为语句中的第一个组件是有意义的。

如果每次都检查整个语句,那么将组件拆分为一堆不同的语句更有意义,如第二个示例所示。


在爪哇,&& and ||保证短路:操作数从左到右求值,一旦确定结果就停止求值。

来自JLS http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.23:

The &&运算符就像&(§15.22.2),但仅当其左侧操作数的值为true.它在语法上是左关联的(它从左到右分组)。

The ||运算符就像|(§15.22.2),但仅当其左侧操作数的值为 false 时才计算其右侧操作数。它在语法上是左关联的(它从左到右分组)。

这意味着您问题中的两个代码片段完全相同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java如何处理IF语句和效率 的相关文章

随机推荐