php:switch與if兩者的區別詳解

來源:互聯網
上載者:User
【轉】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更廣。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.