短路求值 · && 左假即停 · || 左真即停
一旦能确定整体结果,右操作数
不再求值
——
p != 0 && x / p > 1
正是靠它避开除零
&&
逻辑与:只要左边为假,整体必为假 → 右边跳过
p != 0
左操作数 · 先求值
p = 0
false
&&
左假 → 已可定论
不必看右边
跳过
x / p > 1
右操作数 · 本应除以 p
若执行 → 除以 0 崩溃
整体结果
false
右边没跑 → 程序安全
||
逻辑或:只要左边为真,整体必为真 → 右边跳过
ready()
左操作数 · 先求值
true
true
||
左真 → 已可定论
不必看右边
跳过
slow()
右操作数 · 昂贵调用
不会被调用
整体结果
true
把「守卫条件」放左边:
p != 0
先挡住,
x / p
才安全
▶ 重播