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