淺談java switch如果case后面沒有break,會出現(xiàn)什么情況?
switch表達式的取值:byte,short,int,char
JDK5以后可以是枚舉
JDK7以后可以是String
如下代碼, case“A” :之后沒有break,此刻會繼續(xù)執(zhí)行 case “B”:的代碼 System.out.println("bbbbbbbb");遇到break之后,代碼運行結(jié)束。
public static void main(String[] args) { String s = "A"; switch (s) { case "A": System.out.println("aaaaaaaa"); /* * 注意:此處如果沒有添加break,則代碼會繼續(xù)執(zhí)行,即使不滿足case條件也會執(zhí)行,直到遇到break */ //break; case "B": System.out.println("bbbbbbbb"); break; default: System.out.println("others"); break; } }
結(jié)果:
default寫在最前面的情況:
public static void main(String[] args) { int x = 2; int y = 3; switch(x){ /* * default 寫在最前面,但是如果沒有寫break;,還是會無條件執(zhí)行后面的語句 */ default: y++; System.out.println("default"); //break; case 3: y++; System.out.println(y); case 4: y++; System.out.println(y); } System.out.println("y="+y); }
結(jié)果:
總結(jié):
break;語句"不是必須的"。如果不寫,如果一旦case相應(yīng)的值成功,但內(nèi)部沒有break語句,那么將會無條件(不再進行case匹配)的繼續(xù)向下執(zhí)行其它case中的語句,直到遇到break;語句或者到達switch語句結(jié)束。
補充知識:Java小細節(jié)——switch有無break的區(qū)別
switch大家都很熟悉,可以從一系列代碼中選出一段去執(zhí)行,它的格式如下:
switch(c){ case 1:statement;break; case 2:statement;break; case 3:statement;break; case 4:statement;break; case 5:statement;break; default:statement; }
我們來看一下下面這段代碼,然后判斷下會輸出什么。
public static void main(String[] args) { doSwitch(0); } static void doSwitch(int i) { 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); } default:{ System.out.println("default"); } } }
運行結(jié)果是:
0
1
2
3
default
=================讓我們加上break試試================
雖然switch-case中的break是可選的,但是break會較大的影響到運行的效果,所以得牢記有無break的區(qū)別。
以上這篇淺談java switch如果case后面沒有break,會出現(xiàn)什么情況?就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java實現(xiàn)簡單的學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細介紹了java實現(xiàn)簡單的學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02Java語言中finally是否一定會執(zhí)行你知道嗎
這篇文章主要為大家詳細介紹了Java finally是否一定會執(zhí)行,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-02-02java IO數(shù)據(jù)操作流、對象序列化、壓縮流代碼解析
這篇文章主要介紹了java IO數(shù)據(jù)操作流、對象序列化、壓縮流代碼解析,具有一定借鑒價值,需要的朋友可以參考下2018-01-01