.1.短路与、逻辑与
短路与:&& 左右条件都为真,最后结果才为真
逻辑与:& 左右条件都为真,最后结果才为真
感觉没啥区别啊。
不同之处:短路与第一个条件为false,第二个条件就不会进行判断,逻辑与不论第一个条件如何,第二个条件都会进行判断,短路与相比于逻辑与效率更高。开发中一般使用短路与较多。
短路逻辑
短路求值(Short-circuit evaluation; minimal evaluation; McCarthy evaluation; 又称最小化求值)[1],是一种逻辑运算符的求值策略。只有当第一个运算数的值无法确定逻辑运算的结果时,才对第二个运算数进行求值。例如,当AND的第一个运算数的值为false时,其结果必定为false;当OR的第一个运算数为true时,最后结果必定为true,在这种情况下,就不需要知道第二个运算数的具体值。在一些语言中(如Lisp),默认的逻辑运算符就是短路运算符,而在另一些语言中(如Java,Ada),短路和非短路的运算符都存在。对于一些逻辑运算,如XOR,短路求值是不可能的 。
短路表达式
x AND y
,事实上等价于条件语句:if x then y else false
。短路表达式x OR y
,则等价于条件语句:if x then true else y
。