本節書摘來自華章計算機《編寫高品質代碼:改善c程式代碼的125個建議》一書中的第3章,建議17-1,作者:馬 偉 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
我們在編寫代碼時,首要原則就是要使正常情況的執行代碼清晰,确認那些不常發生的異常情況處理代碼不會遮掩正常的執行路徑。也就是說,我們應該把正常情況的處理放在if 後面,而不要放在else 後面。這樣,不僅符合我們平時的邏輯思維習慣,同時這對代碼的可讀性和性能也很重要。例如,下面的代碼是對學生的成績及格與不及格進行判斷:
這樣的代碼,不僅看起來很符合我們平時的邏輯思維習慣,而且if 語句在做判斷時,正常情況一般比異常情況發生的機率更大(否則就應該把異常和正常調過來了),即及格的學生多于不及格的學生。如果把執行機率更大的代碼放到後面,也就意味着if 語句将進行多次無謂的比較,如下面的代碼所示:
因為及格的學生總是多于不及格的學生,是以在上面的代碼中,if 語句将進行多次無謂的比較,同時也難以了解。