Java 中的条件评估过程
2022-09-02 23:24:36
假设我有以下条件:
if ( myList == null || myList.isEmpty() || xomeX == someY )
这些条件的评估顺序是什么?向左还是向右,从右到左还是每次都是随机的?
如果第一个通过,那么其他的就被忽略了吗?
假设我有以下条件:
if ( myList == null || myList.isEmpty() || xomeX == someY )
这些条件的评估顺序是什么?向左还是向右,从右到左还是每次都是随机的?
如果第一个通过,那么其他的就被忽略了吗?
它应该始终从左到右,但赋值运算符除外。您正在使用短路运算符 ,因此如果第一个条件是 ,则不会评估其余条件。=
OR
true
条件或运算符在语法上是左结合的(它从左到右分组)。
在运行时,首先计算左侧操作数表达式;如果结果的类型为布尔值,则进行拆箱转换 (§5.1.8)。
如果结果值为 true,则条件或表达式的值为 true,并且不计算右侧操作数表达式。