理解Java中的switch分支語句
在程式中遇到多分支選擇的時候,想必大家都喜歡用if...else if...else...語句,尤其是初學者,因為在瞭解switch語句之前,我也是隻會用if...else語句。那麼現在看完這篇隨筆的介紹後,你們又有了另外一種選擇,使用switch語句可以增強程式碼的可能性,當然switch也不是隨隨便便就能用的,它也有語法規則的約束。
|
在程式中遇到多分支選擇的時候,想必大家都喜歡用if...else if...else...語句,尤其是初學者,因為在瞭解switch語句之前,我也是隻會用if...else語句。那麼現在看完這篇隨筆的介紹後,你們又有了另外一種選擇,使用switch語句可以增強程式碼的可能性,當然switch也不是隨隨便便就能用的,它也有語法規則的約束,請看下面的闡述。
switch語句用於多分支選擇,由一個控制表示式和多個case標籤組成。switch語句後面的控制表示式的資料型別只能是byte、short、char、int、String和列舉型別,不能是其它型別。
switch語句往往需要在case標籤後緊跟一個程式碼塊,case標籤作為這個程式碼塊的標識。
switch語句的語法如下:
switch(expr){ case condition1{ //程式碼塊... break; } case condition2{ //程式碼塊... break; } ... case conditionN{ //程式碼塊... break; } dafault:{ //程式碼塊... } }
這種分支語句的執行是先對expr求值,然後依次匹配每個case標籤後的condition值,遇到匹配的值即執行對應的程式碼塊,如果condition的值沒有與expr表示式的值相等,則執行default標籤後的程式碼塊。
switch語句和if語句都可用於分支條件的選擇,但switch後面的控制表示式只能是byte、short、char、int、String和列舉型別,不能是boolean型別,if後面的控制表示式是boolean型別;switch語句中各個case標籤後程式碼塊的開始點和結束點非常清晰,因此完全可以省略case後程式碼塊的花括號。
為了更清晰的認識switch,下面透過一段程式來示範switch的用法:
public class TestSwitch { public static void main(String[] args) { //宣告變數languageType String languageType = "Java"; //執行switch語句 switch (languageType) { case "C": System.out.println("C語言"); break; case "Java": System.out.println("Java語言"); break; case "C++": System.out.println("C++語言"); break; case "Python": System.out.println("Python語言"); break; default: System.out.println("語言型別輸入錯誤"); } } }
執行上面的程式輸出:Java語言。
因為定義的變數(switch後面的控制表示式)"languageType" 與"Java"匹配。
如果把上面程式中的每個case標籤裡的break語句去掉,將會發生什麼樣的結果呢?那麼我先把每個break語句註釋掉,執行結果如下:
Java語言 C++語言 Python語言 語言型別輸入錯誤
輸出結果是不是很奇怪!這正是switch語句的執行流程決定的,只要進入switch語句的入口,程式會一直執行下去,直到遇到break語句,如果省略了break語句,那麼匹配case值後的所有情況(包括default)都會被執行。
所以,使用switch語句時,有兩個值得注意的地方:
1)switch後面的控制表示式只能是byte、short、char、int、String和列舉型別;
2)如果省略了case後的程式碼塊break,將會引入一個陷阱。
原文地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2659487/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- if 多分支語句和 switch 多分支語句的異同之處
- java中的switch case語句Java
- java中switch語句注意--breakJava
- JavaScript中的switch語句JavaScript
- Java 判斷語句 - if…else/switchJava
- JAVA基礎--Switch case語句Java
- java switch語句是什麼?Java
- JavaScript switch語句JavaScript
- JavaScript switch 語句JavaScript
- python分支語句Python
- 分支語句和迴圈語句
- 開心檔之Java switch case 語句Java
- switch語句逆向分析
- 運算子、分支語句
- java基礎筆記 -- 6.選擇結構-if語句-switch語句Java筆記
- [譯] part 10: switch 語句
- Java-Annotation的一種用法(消除程式碼中冗餘的if/else或switch語句)Java
- 第 7 小節 if、switch 語句
- JavaScript switch與if else語句的區別JavaScript
- Verilog 多路分支語句簡介
- printf格式控制、switch-case語句
- 分支、迴圈語句動態展示
- JavaScript 流程控制語句詳解:if語句、switch語句、while迴圈、for迴圈等JavaScriptWhile
- 【分支流程控制語句、迴圈流程控制語句】的學習
- JAVA中的跳轉語句—break、continueJava
- js 學習之路7:switch/case語句的使用JS
- Python常見的三種分支語句詳解!Python
- Android switch語句報錯Constant expression requiredAndroidExpressUI
- 物聯網學習教程——switch語句
- Java中如何解析SQL語句、格式化SQL語句、生成SQL語句?JavaSQL
- Python:條件分支 if 語句全講解Python
- golang中一種不常見的switch語句寫法Golang
- java學習基礎篇筆記4-----switch-case語句+Scanner類Java筆記
- Go_ if else語句 ,,迴圈,,switch,,陣列Go陣列
- go 流程控制之switch 語句介紹Go
- Java 控制語句Java
- Java - 6 語句Java
- Java for迴圈中語句執行的順序Java