理解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
- Javase—分支語句Java
- python分支語句Python
- 運算子、分支語句
- JavaScript中的switch語句JavaScript
- Java中的Import語句如何理解?JavaImport
- java switch語句是什麼?Java
- Java 判斷語句 - if…else/switchJava
- JAVA基礎--Switch case語句Java
- java中switch的用法Java
- Verilog 多路分支語句簡介
- switch語句的妙用
- 開心檔之Java switch case 語句Java
- Python常見的三種分支語句詳解!Python
- 十分鐘理解Java中的弱引用Java
- JavaScript switch 語句JavaScript
- JavaScript switch語句JavaScript
- Go switch 語句Go
- 兩句話理解js中的thisJS
- Java-Annotation的一種用法(消除程式碼中冗餘的if/else或switch語句)Java
- Java學習之分支結構---判斷語句:if語句和switch語句Java
- 十分鐘理解 Java 中的動態代理Java
- switch語句逆向分析
- java基礎筆記 -- 6.選擇結構-if語句-switch語句Java筆記
- [譯] part 10: switch 語句
- Java 17中對switch的模式匹配增強Java模式
- 為什麼Python中沒有Switch/Case語句?Python
- JavaScript switch與if else語句的區別JavaScript
- [JAVA] Java switch的使用細節Java
- 第 7 小節 if、switch 語句
- Matlab的if語句switch語句for迴圈while迴圈語句練習MatlabWhile
- 理解Java中的弱引用Java
- Java switch caseJava
- java之switchJava
- js switch語句需要特別注意的地方JS
- 深入理解Java的分級引用模型Java模型