淺談java switch如果case后面沒(méi)有break,會(huì)出現(xiàn)什么情況?
switch表達(dá)式的取值:byte,short,int,char
JDK5以后可以是枚舉
JDK7以后可以是String
如下代碼, case“A” :之后沒(méi)有break,此刻會(huì)繼續(xù)執(zhí)行 case “B”:的代碼 System.out.println("bbbbbbbb");遇到break之后,代碼運(yùn)行結(jié)束。
public static void main(String[] args) { String s = "A"; switch (s) { case "A": System.out.println("aaaaaaaa"); /* * 注意:此處如果沒(méi)有添加break,則代碼會(huì)繼續(xù)執(zhí)行,即使不滿足case條件也會(huì)執(zhí)行,直到遇到break */ //break; case "B": System.out.println("bbbbbbbb"); break; default: System.out.println("others"); break; } }
結(jié)果:
default寫(xiě)在最前面的情況:
public static void main(String[] args) { int x = 2; int y = 3; switch(x){ /* * default 寫(xiě)在最前面,但是如果沒(méi)有寫(xiě)break;,還是會(huì)無(wú)條件執(zhí)行后面的語(yǔ)句 */ 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;語(yǔ)句"不是必須的"。如果不寫(xiě),如果一旦case相應(yīng)的值成功,但內(nèi)部沒(méi)有break語(yǔ)句,那么將會(huì)無(wú)條件(不再進(jìn)行case匹配)的繼續(xù)向下執(zhí)行其它c(diǎn)ase中的語(yǔ)句,直到遇到break;語(yǔ)句或者到達(dá)switch語(yǔ)句結(jié)束。
補(bǔ)充知識(shí):Java小細(xì)節(jié)——switch有無(wú)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; }
我們來(lái)看一下下面這段代碼,然后判斷下會(huì)輸出什么。
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"); } } }
運(yùn)行結(jié)果是:
0
1
2
3
default
=================讓我們加上break試試================
雖然switch-case中的break是可選的,但是break會(huì)較大的影響到運(yùn)行的效果,所以得牢記有無(wú)break的區(qū)別。
以上這篇淺談java switch如果case后面沒(méi)有break,會(huì)出現(xiàn)什么情況?就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
封裝了一個(gè)Java數(shù)據(jù)庫(kù)訪問(wèn)管理類(lèi)
剛剛試著用JDBC,仿著原來(lái)C#的寫(xiě)法寫(xiě)了這段代碼,自己覺(jué)得還是挺粗糙的,還煩請(qǐng)路過(guò)的朋友推薦一個(gè)寫(xiě)得較好較完整的相關(guān)例程以便學(xué)習(xí)。謝謝!2009-02-02java實(shí)現(xiàn)簡(jiǎn)單的學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單的學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02Java語(yǔ)言中finally是否一定會(huì)執(zhí)行你知道嗎
這篇文章主要為大家詳細(xì)介紹了Java finally是否一定會(huì)執(zhí)行,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-02-02淺談java中OO的概念和設(shè)計(jì)原則(必看)
下面小編就為大家?guī)?lái)一篇淺談java中OO的概念和設(shè)計(jì)原則(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05Vue.Js及Java實(shí)現(xiàn)文件分片上傳代碼實(shí)例
這篇文章主要介紹了Vue.Js及Java實(shí)現(xiàn)文件分片上傳代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06java IO數(shù)據(jù)操作流、對(duì)象序列化、壓縮流代碼解析
這篇文章主要介紹了java IO數(shù)據(jù)操作流、對(duì)象序列化、壓縮流代碼解析,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01如何通過(guò)idea給web項(xiàng)目打war包
這篇文章主要介紹了如何通過(guò)idea給web項(xiàng)目打war包問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07