短路求值

短路求值,C++語言用術語。中有這樣一個特性,即對於與、或運算,如果能夠通過第一個表達式計算出整個表達式的真值,那么就不會再去計算第二個表達式。

短路求值

作為"&&"和"||"操作符運算元表達式,這些表達式在進行求值時,只要最終的結果已經可以確定是真或假,求值過程便告終止,這稱之為短路求值。這是這兩個操作符的一個重要屬性。假如expr1和expr2都是表達式,並且expr1的值為0,

求值過程

在下面這個邏輯表達式的求值過程中:
expr1 && expr2
expr2將不會進行求值,因為整個邏輯表達式的值已經可以確定為0。 類似地,如果expr1的值不是0,那么在下面的這個邏輯表達式的求值過程中:
expr1 || expr2
expr2將不會進行求值,因為整個邏輯表達式的值已經確定為1。
下面是一個簡單的可能會出現短路求值的例子。假如我們需要處理的字元數量不超過5個。

int cnt =0;
while (++cnt<=5&&(c=getchar())!=EOF)
{
...

當表達式++cnt<=5的值是假時,下一個字元就不會被讀取。

相關詞條

相關搜尋

熱門詞條

聯絡我們