如何進行循環檢查
回答
如果你不想LEN每次執行:
int length = len(arr);
for i = 0; i < length; i++ {
...
}
這不是問題。 – delnan 2012-04-04 17:16:43
是,LEN()在每次迭代被調用。它是相同的,如果你使用一個簡單的變量來代替。
for(i=0 ; i< a; i++)
雖然並不建議這樣做,你可以改變a
中期運行的價值。
我相信語言定義(假設我們在這裏採用C/C++)要求每次都調用它。如其他答案中的建議,你必須自己做這個優化。編譯器通常不知道調用len()函數是否會產生副作用,或者在每次調用時都會返回相同的值,因此通常無法將其從循環中取出。既然你知道len()做什麼,你可以執行該優化。
是否足以讓最終結果與每次被調用的結果相同。 – alvin 2012-04-04 17:31:07
如果它在每次迭代期間沒有改變。它被稱爲循環不變量。循環不變式可以(可以是單詞)在循環體上方懸掛。 但沒有必要這樣做的正確性。在函數調用的情況下,編譯器很難確定該值是否是循環不變的。如果它是內聯函數,那麼理論上可以確定循環不變性。但我不確定是否有任何特定的編譯器實際執行此操作。
看到loop invariant code motion以獲取更多信息
- 1. For循環Python進行多種檢查
- 2. 檢查循環
- 3. 檢查空進入無限循環
- 4. 如何在循環內檢查for循環何時完成?
- 5. 檢查for循環
- 6. 如何檢查循環中的類型?
- 7. 如何檢查循環內的精度?
- 8. EPPlus如何檢查循環引用?
- 9. 在循環中如何檢查`mkdir`執行然後停止循環?
- 10. 如何通過兒童進行循環,但只能作爲MovieClip進行循環?
- 11. 對循環中的file_get_contents進行PHP檢查
- 12. while循環在JavaScript中進行錯誤檢查
- 13. Java使用繼續循環進行重複字符串檢查
- 14. 'foreach'循環是否可以進行條件檢查?
- 15. 如何對for循環進行優化?
- 16. 如何在庫jQuery中進行循環?
- 17. 如何對此進行循環?
- 18. 如何寫號的循環進行JAVA
- 19. 如何在SQL中進行循環?
- 20. 如何使用JQUERY進行循環?
- 21. 如何在JQuery中進行循環?
- 22. 如何在Python中進行循環2.7.10
- 23. 如何通過嵌套循環進行循環並枚舉
- 24. Python While循環(檢查行6)
- 25. While循環,檢查上次運行
- 26. 檢查裏面的循環未執行
- 27. 檢查並行foreach循環的狀態
- 28. 如何循環switch語句來檢查重新檢查char? (C++)
- 29. 如何檢查fetch_assoc循環中是否還有行?
- 30. IOS如何在執行檢查時正確循環
有成千上萬的編譯器,每一個方面都不同的方式處理這個。更加詳細一些! – asawyer 2012-04-04 17:14:39