JS程式設計建議 25 恰當選用if和switch

2021-09-22 19:20:53 字數 980 閱讀 4379

建議25:恰當選用if和switch

switch結構中存在很多限制,存在這些限制的主要目的是提高多重分支結構的執行效率。因此,如果能夠使用switch結構,就不要選擇if結構。

無論是使用if結構,還是使用switch結構,應該確保下面3個目標的基本實現:

準確表現事物內在的、固有的邏輯關係。不能為了結構而破壞事物的邏輯關係。

優化邏輯的執行效率。執行效率是程式設計的重要目標,不能為了省事而隨意耗費資源。

簡化**的結構層次,使**更方便閱讀。

相對來說,下面幾種情況更適合使用switch結構:

列舉表示式的值。這種列舉是可以期望的、平行邏輯關係的。

表示式的值具有離散性,不具有線性的非連續的區間值。

表示式的值是固定的,不是動態變化的。

表示式的值是有限的,而不是無限的,一般情況下表示式應該比較少。

表示式的值一般為整數、字串等型別的資料。

而if結構則更適合下面的一些情況:

具有複雜的邏輯關係。

表示式的值具有線性特徵,如對連續的區間值進行判斷。

表示式的值是動態的。

測試任意型別的資料。

例如,針對學生分數進行不同的判斷,如果分數小於60,則評定為不及格;如果分數在60~75(不包含75)之間,則評定為合格;如果分數在75~85(不包含85)之間,則評定為良好;如果分數在85~100之間,則評定為優秀。針對這種情況,表示式的值是連續的線性判斷,顯然使用if結構會更合適一些。

if(score < 60)

else if(60 <= score < 75)

else if(75 <= score < 85)

else if(85 <= score <= 100)

如果使用switch結構,則需要列舉100種可能,如果分數值還包括小數,情況就更加複雜了,此時使用switch結構就不是明智之舉。但是,對於有限制的列舉資料,比如性別,使用switch結構會更高效,例如:

switch(***)

JS程式設計建議 31 使用迭代

建議31 使用迭代 任何可以用遞迴實現的演算法都可以用迭代實現。迭代演算法通常包括幾個不同的迴圈,分別對應演算法過程的不同方面。雖然迭代也會導致效能問題,但是使用優化的迴圈替代長時間執行的遞迴函式可以提高效能,因為執行乙個迴圈比反覆呼叫乙個函式的開銷要低。例如,合併排序演算法是最常用的以遞迴實現的演...

JS程式設計建議 24 優化if邏輯(1)

建議24 優化if邏輯 1 邏輯順序體現了人的思維的條理性和嚴密性。合理的順序可以提公升解決問題的品質,相反,混亂的順序很容易導致各種錯誤的發生。在分支結構中經常需要面臨各種優化邏輯順序的問題。人在思考問題時,一般總會對各種最可能發生的情況做好準備,這叫做 有備而來 分支結構中各種條件根據情況的先後...

JS程式設計建議 15 避免使用continue

建議15 避免使用continue continue語句與break語句用法相似,在迴圈結構中用於控制邏輯的執行方向。break語句用於停止迴圈,而continue語句卻用於再次執行迴圈。與break語句語法相同,continue語句可以跟隨乙個標籤名,用來指定繼續執行的迴圈結構的起始位置。cont...