淺談你對switch的理解以及switch和if的應用場景


  平時一般用if,switch用的很少,有必要簡單總結下兩者的區別:

一、對switch的理解

1、switch的括號里面放的是一個變量

2、case相對應的值是關於這個變量的一個值

3、switch里面的這個變量和case里面這個變量不會進行隱式類型的一個轉換,而是進行了恆等比較所以一定要注意這個變量和這個case里面的值是不是一個類型。

4、關於switch里面的case會有一個穿透效果,這個效果有的時候會給我們帶來好處,有的時候會給我們帶來壞處,如果不需要這種穿透效果的時候,需要加break

5、swicth里面如果這個變量沒有匹配到case里面這個值,那么就需要返回一個信息。所以在case的末尾一定要加上一個default,這樣既給用戶的體驗比較完美,另一方面對代碼的今后維護也有很大的幫助

6、比較的值都是固定值

二、switch工作原理

1、首先設置表達式 n(通常是一個變量)

2、隨后表達式的值會與結構中的每個 case 的值做比較,如果有就執行對應的語句體,看到break就結束。

3、如果沒有匹配,就執行default的語句體。

三、注意事項

1、case后面只能是常量,不能是變量,而且,多個case后面的值不能出現相同的值

2、default可以省略嗎?可以省略,但是不建議,因為它的作用是對不正確的情況給出提示。

3、break可以省略嗎?可以省略,但是結果可能不是我們想要的,會出現一個現象:case穿透,最終我們建議不要省略

  case穿透和break有關,只有當遇到break時才會終止,不然會繼續執行后面case中的代碼塊

4、default一定要在最后嗎?不是,可以在任意位置。但是建議在最后。

  default的位置不會影響執行結果,不管你編寫的代碼中default放在那里,這里的條件判斷都是先按順序比較其他非default值,當這些條件都不滿足的時候,才跳轉到default的相應代碼處執行。

5、switch語句的結束條件

  (1)遇到break就結束了;

  (2)執行到末尾就結束了。

四、switch和if的應用場景

if :

  1、具體的值進行判斷

  2、區間的判斷

  3、對運算的結果是boolean類型表達式進行判斷  true   false

switch:

  1、對具體的值進行判斷

  2、值的個數是固定的。對於幾個固定的值判斷,建議使用switch 語句。因為switch 語句會將具體的答案都加載進內存,效率相對高一點。

  基於代碼的可讀性:如果條件較少時,if-else容易閱讀,而條件較多時,switch更容易閱讀


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM