例如:
1.
if a==1
process for a
if b==1
process for a
if a == 1; process for a
else if b == 1; process for b
哪個會更快?
uj5u.com熱心網友回復:
它們不是等價的。如果代碼錯了,它的速度有多快都沒有關系。
在第一示例中,這兩個程序a 和 b(假定在代碼一個錯字)可以取決于的值上運行,a和b。
在第二個示例中,最多可以運行一個行程,即使a和b都為 1。
更一般地回答這個問題,規定每個測驗需要相同的時間來執行,由if陳述句保護的一系列操作會更慢,因為所有的測驗都將被評估(因此,所有受保護的操作都可能被執行)。if-else-if一旦發現測驗為真,一系列測驗將停止執行(并且只能執行一個受保護的操作)。因此,if-else-if將始終至少與 的等效系列一樣快if,并且可能更快,具體取決于哪些條件為真。
uj5u.com熱心網友回復:
2,你肯定是節省一些條件驗算,因為在第一個的情況下if存在true,程式并不需要檢查任何即將到來的else if條件。
然而,考慮到您的計算機每秒進行數十億次計算,速度的提高將是微不足道的,并且不會引起注意。因此,與機器每秒執行的操作相比,節省的少量計算根本算不了什么。
這就像從海洋中取出幾滴,并期望它們有所作為。
話雖如此,這 在以后除錯代碼時會很有幫助,因為現在您知道在ifs 之外,如果執行了一個,流程將無法進入任何其他if存在的 s。這樣可以節省時間并使除錯更快。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/373040.html
