switch case與if/else的效率差在哪裏!

       在學校的時候經常寫一些小的程序,遇到分支問題不假思索的選擇使用if/else,只記得還有個switch case也能用但是很少選擇它。然而真理往往是掌握在少數人手中的,如果分支數量較少選擇switch case跟if/else的效率沒有區別。當分支數量超過3個時switch case的效率就要明顯高於is/else了。血和淚的經驗真的是在實踐中一點一點碰出來的!

        if/else就是從第一個分支開始判斷,並且會執行完分支的判斷條件直到條件爲真才執行分支內容再返回。而switch case的判斷方法是首先它的判斷條件是一個integral or enum type即一個整形或者枚舉類型,從判斷條件來看判斷一個整形的速度要比判斷一個if分支爲真的速度快很多。最核心的是switch case的底層實現,在實現上switch case會用一個跳轉表來存儲分支的地址,因爲判斷條件就是整形的,這個整形作爲跳轉表的下標就得到了分支的位置直接進入case。

        儘量使用switch case吧!!!會讓你代碼的執行效率提高很多!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章