switch 没有default_「java面试」switch究竟怎么用,不要让它吃灰了!
首先感謝大家的評論,前一篇文章中評論區有一位小伙伴問到了java中switch,今天我們來講一下switch的基礎用法以及注意事項。(感謝大家的留言支持,我都會認真看,也盡可能的為大家解答疑惑)
1.switch用于分支選擇,使用方法如下。
switch(exp){ case value : //語句 break; case value : //語句 break; //你可以有任意數量的case語句 default : //可選 //語句}switch case 執行時,會先用exp和value進行匹配,匹配成功返回當前 case 中語句的值,再根據是否有 break,判斷是否繼續輸出,或是跳出判斷。
exp可以是:byte、short、int、char、String、枚舉類型(很重要)。
2.switch使用注意事項
(1)switch 語句中的變量類型可以是: byte、short、int 或者 char,不能使用long、float、double。從 Java SE 7 開始,switch 支持字符串 String 類型了,同時 case 標簽必須為字符串常量或字面量。
-有的小伙伴要問了,為什么?
答:因為byte、short、char實際上都能隱式的轉化為int類型,而long、float、double不行。
-有的小伙伴又要說了,胡說八道,我那天看見我們工程里面有人用 Character、Short、
Integer都可以!
答:確實可以,這來源于包裝類型的自動拆分包,拆包后流程就都一樣了。
-有的小伙伴可能還要問,String也不能隱式轉int,為什么能支持呢?
答:實際上比的還是int,只不過這次是用exp的hashcode()方法獲取一個int類型的hash值,然后跟case后面的String用同樣的方法獲取哈希值,兩個一比,就匹配上了。從這里也能看出來,case后面的string值不能為空。
(2)switch 語句可以擁有多個 case 語句。每個 case 后面跟一個要比較的值和冒號。
(3)case 語句中的值的數據類型必須與變量的數據類型相同,而且只能是常量或者字面常量。
(4)當變量的值與 case 語句的值相等時,那么 case 語句之后的語句開始執行,直到 break 語句出現才會跳出 switch 語句。
(5)當遇到 break 語句時,switch 語句終止。程序跳轉到 switch 語句后面的語句執行。case 語句不必須要包含 break 語句。如果沒有 break 語句出現,程序會繼續執行下一條 case 語句,直到出現 break 語句。
例如:int i = 1;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");}輸出:123(6)switch 語句可以包含一個 default 分支,該分支一般是 switch 語句的最后一個分支(可以在任何位置,但建議在最后一個)。default 在沒有 case 語句的值和變量值相等的時候執行。default 分支不需要 break 語句。
例如:int i = 4;switch(i){ case 0: System.out.println("0");break; case 1: System.out.println("1");break; case 2: System.out.println("2");break; case 3: System.out.println("3"); break; default: System.out.println("default");}輸出:default總結
以上是生活随笔為你收集整理的switch 没有default_「java面试」switch究竟怎么用,不要让它吃灰了!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql+主从复制重做_XtraBac
- 下一篇: python实现将文件内容按照某一列内容