回答
號
&&
和||
具有短路評價,即,一旦該結果明確知道(false
爲&&
和true
爲||
)評價停止。它總是嚴格從左到右。
在這種情況下,編譯器甚至可能會選擇完全消除if
語句,因爲編譯時的條件已知爲false
,因此代碼之後無法訪問。
非常感謝您的幫助 – harut9
準確地說,只有內置的邏輯表達式具有短路語義。當運算符被重載時,表達式是一個正常的函數調用。 –
因爲C++有short-circuit evaluation的條件,所以不會調用該函數,因爲第一個false
無論如何都會使整個表達式爲false。
如果你改變順序,所以你先把函數調用(即myfunc() && false && true
),那麼函數將被調用。儘管如此,表達式的結果仍然是false
,無論myfunc
返回什麼結果。
如果你在你的答案中寫下訂單,那麼編譯器是不是會優化整個if語句和其範圍內的所有內容?或者在那裏有異常的情況下調用該函數? – Chiel
@Chiel如果函數是來自另一個翻譯單元的外部函數,那麼編譯器無法知道它做了什麼,或者它有什麼副作用,所以函數調用不能被優化。它可以優化的是它除了呼叫外沒有其他任何操作,而忽略返回的值。 –
不,myfunc()
將不會被調用,因爲第一個false
,編譯器將停在那裏。這就是所謂的短路評估。
- 1. 這個If語句如何工作?
- 2. If語句如何在Javascript中工作
- 3. 如何使if語句正常工作?
- 4. 如何使這個IF語句工作
- 5. 多mysqli_query語句IF語句不工作
- 6. 非工作if語句
- 7. 的「if」語句不工作
- 8. if語句,不工作
- 9. IF語句不工作
- 10. 玉if語句不工作
- 11. Android if if語句不工作inItemClickListener
- 12. IF語句不執行,但ELSE IF語句正常工作
- 13. 如何if語句
- 14. 如何if語句
- 15. 如何簡化If語句的語法工作?
- 16. 如果語句嵌套if if語句嵌套if語句,
- 17. 增量操作符在if語句中如何工作?
- 18. if(!found)語句無法正常工作
- 19. 基本if語句不工作 - Python的
- 20. SelectedItem.Text是否在if語句中工作?
- 21. Java IF語句無法正常工作
- 22. Js if語句無法正常工作
- 23. setcookie()不工作在if語句
- 24. 函數與if語句不工作?
- 25. 定義if語句不工作的值
- 26. jQuery的不能讓if語句工作
- 27. 「if」語句無法正常工作?
- 28. if語句子流程python不工作
- 29. jQuery的if語句工作在Firefox
- 30. 有麻煩if語句在VBA工作
總之:不,它不會被調用。 –
否。if條件將在第一個錯誤時停止,而不會測試其他兩個條件。 – Drakes
夥計們。答案在_ANSWER部分_ –