java中的switch case語句
switch-case語句格式如下:
switch(變數){ case 變數值1: //; break; case 變數值2: //...; break; ... case default: //...; break; }
swtich()變數型別只能是 int、short、char、byte和enum型別( JDK 1.7 之後,型別也可以是String了)。當進行case判斷時,JVM會自動從上到小掃描,尋找匹配的case,可能存在以下情況:
情況一:若未找到,則執行預設的case。
int i = 5; switch(i){ case 0: System.out.println("0");break; case 1: System.out.println("1");break; case 2: System.out.println("2");break; default: System.out.println("default");break; } 輸出:default
情況二:當每一個case都不存在break時,JVM並不會順序輸出每一個case對應的返回值,而是繼續匹配,匹配不成功則返回預設case。
int i = 5; switch(i){ case 0: System.out.println("0"); case 1: System.out.println("1"); case 2: System.out.println("2"); default: System.out.println("default"); } 輸出:default
情況三:當每一個case都不存在break時,匹配成功後,從當前case開始,依次返回後續所有case的返回值。
int i = 2; switch(i){ case 0: System.out.println("0"); case 1: System.out.println("1"); case 2: System.out.println("2"); default: System.out.println("default"); } 輸出:2 default
情況四:若當前匹配成功的case不存在break,則從當前case開始,依次返回後續case的返回值,直到遇到break,跳出判斷。
int i = 2; switch(i){ case 0: System.out.println("0"); case 1: System.out.println("1"); case 2: System.out.println("2"); case 3: System.out.println("3");break; default: System.out.println("default"); } 輸出:2 3
因此switch case執行時,一定會先進行匹配,匹配成功返回當前case的值,再根據是否有break,判斷是否繼續輸出,或是跳出判斷。
還需注意的是case後面只能是常量,可以是運算表示式,但一定要符合正確的型別。不能是變數,即便變數在之前進行了賦值,JVM依然會報錯。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2658867/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JAVA基礎--Switch case語句Java
- 開心檔之Java switch case 語句Java
- printf格式控制、switch-case語句
- switch case語句程式碼例項
- 為什麼Python中沒有Switch/Case語句?Python
- java中switch語句注意--breakJava
- js 學習之路7:switch/case語句的使用JS
- Java switch caseJava
- JavaScript中的switch語句JavaScript
- java學習基礎篇筆記4-----switch-case語句+Scanner類Java筆記
- Go語言 - switch/caseGo
- Swift學習筆記(二十七)——條件語句和Switch-case語句Swift筆記
- java switch語句是什麼?Java
- Java 判斷語句 - if…else/switchJava
- 理解Java中的switch分支語句Java
- eslint 效驗 switch case語句縮排警告提示處理EsLint
- switch語句的妙用
- Java學習之分支結構---判斷語句:if語句和switch語句Java
- JavaScript switch 語句JavaScript
- JavaScript switch語句JavaScript
- Go switch 語句Go
- Oracle Case語句用法Oracle
- SQL中CASE語句強大功能詳解SQL
- switch語句逆向分析
- [Linux]控制語句If caseLinux
- switch case 的 expected expressionExpress
- java基礎筆記 -- 6.選擇結構-if語句-switch語句Java筆記
- 消除程式碼中的 if-else/switch-case
- Matlab的if語句switch語句for迴圈while迴圈語句練習MatlabWhile
- [譯] part 10: switch 語句
- MySQL 的CASE WHEN 語句使用說明MySql
- SQl CASE 語句的巢狀使用方式SQL巢狀
- Java-Annotation的一種用法(消除程式碼中冗餘的if/else或switch語句)Java
- [shell基礎]——if/for/while/until/case 語句While
- 測試TOM=SQLLDR使用CASE語句SQL
- 第 7 小節 if、switch 語句
- JavaScript switch與if else語句的區別JavaScript
- switch_case練習