2017-05-07 22 views

回答

-1

沒有,但循環條件會影響你的表現

1

我的代碼中有不必要的if/else條件。它們會影響我的代碼的性能嗎?

如果它們被執行,它們會採用非零時間進行評估。但在99.99999%的案例中,這不太可能有關係。在出現性能問題時擔心性能問題。

但對於例如,給定:

void example(int a) { 
    if (a < 0) { 
     doThis(); 
    } else if (a < 100) { 
     doThat(); 
    } else if (a < 1000) { 
     doSomethingElse(); 
    } else { 
     doAnotherThingEntirely(); 
    } 
} 

...如果你知道a絕不會,比方說,<50,那些前兩個條件是不必要的,他們將永遠是正確的。檢查它們需要做工作  — a 非常非常非常非常小工作量不大可能會影響工作量。所以從這個意義上說,它會影響你的代碼的性能。

但是:這不太可能。在處理與相關代碼隔離的真實世界性能問題時擔心。

這並不意味着你不應該刪除它們。如果他們真的沒有必要,他們就是這樣:不必要的。通常應刪除不必要的代碼,其他所有條件都相同。

0

通常,它不會影響性能,但可能會導致意外的行爲。在清潔代碼unneserry ifif-else聲明必須刪除清晰,可維護性,更好的測試。

由於不必要的if語句導致性能下降的一種情況是循環的。

相關問題