【轉】switch與if的區別
如果純粹比較數字或字符,建議使用switch,因為它只會在一開始的switch括號中取出變量值一次,然後將這個值與下面所設定的case比較,但如果使用if,每次遇到條件式時,都要取出變數值,效率的差異就在這裡。例如:
if(a == 1) //... else if(a == 2) //... else if(a == 3) //...
這個程式片段在最差的狀況下,也就是a = 3時,共需3次比較,而每次比較都必須取出變數a的值一次。如果換成switch:
switch(a) { case 1: //... break ; case 2: //... break; case 3: //... break; }
在這個程式片段中,只在開頭switch的括號中取出變數a的值,然後逐一比較下面的case,效率的差別就在這兒。當然不是使用if就不好,遇到複合條件時,switch就幫不上忙了,由於無法在switch中組合複雜的條件語句,這時就得使用if了。簡單地說,if與switch兩者可以搭配靈活使用。
If與switch語句很像,如何選擇使用呢?如果判斷具體數值不多,而且符合byte,short ,char,int ,String類型,雖然兩種語句都可以使用,但是建議使用switch語句,效率高其他情況:對區間判斷,對結果型別為boolean進行判斷,使用if,if較廣。
#
以上是php:switch與if兩者的差異詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!