面试题答案
一键面试fn check_conditions(x: bool, y: bool, z: bool) -> bool {
(x && y) || (!y && z)
}
逻辑表达式执行路径分析
- 当
y
为true
时:!y && z
这部分为false
,因为!y
为false
,false && z
恒为false
。- 此时只需看
x && y
,若x
为true
,则(x && y) || (!y && z)
为true
;若x
为false
,则(x && y) || (!y && z)
为false
。
- 当
y
为false
时:x && y
这部分为false
,因为y
为false
,x && false
恒为false
。- 此时只需看
!y && z
,若z
为true
,因为!y
为true
,则(x && y) || (!y && z)
为true
;若z
为false
,则(x && y) || (!y && z)
为false
。