大多数编程语言都有所谓的逻辑短路设定。
就是说,在条件判断的时候,如果“逻辑或”表达式第一项已经为真,就不会再判断第二项是否真假。
同理,如果“逻辑与”表达式的第一项已经为假,就不会再判断第二项是否真假。
条件判断的逻辑短路,有点像初中物理学的电路短路问题。
如图所示,开关合上的时候,灯炮不会亮。只有开关断开,灯泡才亮。
举个编程的例子:
if(a==5 || b == 5)跟 if(a==5 || (a != 5 && b == 5))是完全等价的;
后者很啰嗦,因为只有a==5判定为假,才会继续判断 b==5 的真假,所以这里完全不必再判断一次 a != 5 。
那么问题来了,if(a == 5 || b == 5)能否写成 if(b==5 || a == 5)呢?
答案是否定的。
Image</