switch 與 if-else
- 結論:一般情況下,switch的效率高於if-else語句
- 原理:
- if …else走邏輯判斷時,每條if語句都獨立需要加載,都要走一遍判斷。
- switch…case 只做一次計算,然後將表達式的值與case逐個比較,直到匹配正確。
- 總結:
- switch 雖然效率高,但要求case爲常量
- if-else 雖然效率低,但更加的靈活
if-else 與 三目表達式
- 結論:一般情況下if-else效率要低於三目表達式
- 原理+總結:
- 從類型轉換上看,因爲三目運算符在做判斷的時候需要考慮到類型轉換的問題,而if else 不需要考慮類型轉換。
所以 if else 效率高一點。 - 從總體上看
A: 需要考慮到循環自身所佔用的時間。
B: 需要考慮到賦值以及循環內的其他運算符所佔用的時間。
所以 三目運算符效率高一點.
- 從類型轉換上看,因爲三目運算符在做判斷的時候需要考慮到類型轉換的問題,而if else 不需要考慮類型轉換。
個人意見:對代碼效率的追求沒有之境,有時候看以只是對代碼優化幾毫秒,但如果這段代碼被運行了十萬百萬次呢?