从左到右 · 只执行必要部分

Java 短路求值与条件执行实验室

改变输入后重新求值,沿着四段轨迹观察:先得到左值,再决定右侧是执行还是跳过,最后才形成整个表达式的结果。

场景一:先确认对象存在

左侧为假时,右侧方法调用不会发生,因此不会对 null 调用 isBlank()

text != null && !text.isBlank()

EXECUTION TRACE

从左到右的执行轨迹

等待求值
01 · 左侧

等待

先计算左操作数。

02 · 门控

等待

由运算符决定是否短路。

03 · 右侧

等待

执行或明确跳过。

04 · 最终

等待

得到整个表达式的值。

选择输入后按“重新求值”,这里会用一句话解释本次执行。

  • ✓ 条件为真
  • ✕ 条件为假
  • ⊘ 已短路跳过

&&:左假即停

左侧已经是 false 时,整个“并且”不可能为真,右侧无需执行。

||:左真即停

左侧已经是 true 时,整个“或者”必然为真,右侧无需执行。

副作用不是可靠承诺

若右侧会写文件、改计数或发请求,它可能因短路而完全不执行。把关键动作单独写成语句,意图更清楚。