短路求值
维基百科,自由的 encyclopedia
短路求值(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
。