switch結構中存在不少限制,存在這些限制的主要目的是提升多重分支結構的執行效率。所以,若是可以使用switch結構,就不要選擇if結構。測試
不管是使用if結構,仍是使用switch結構,應該確保下面3個目標的基本實現:優化
準確表現事物內在的、固有的邏輯關係。不能爲告終構而破壞事物的邏輯關係。設計
優化邏輯的執行效率。執行效率是程序設計的重要目標,不能爲了省事而隨意耗費資源。資源
簡化代碼的結構層次,使代碼更方便閱讀。字符串
相對來講,下面幾種狀況更適合使用switch結構:it
枚舉表達式的值。這種枚舉是能夠指望的、平行邏輯關係的。程序設計
表達式的值具備離散性,不具備線性的非連續的區間值。效率
表達式的值是固定的,不是動態變化的。程序
表達式的值是有限的,而不是無限的,通常狀況下表達式應該比較少。數據
表達式的值通常爲整數、字符串等類型的數據。
而if結構則更適合下面的一些狀況:
具備複雜的邏輯關係。
表達式的值具備線性特徵,如對連續的區間值進行判斷。
表達式的值是動態的。
測試任意類型的數據。