淺談java switch如果case後面沒有break,會出現什麼情況?
阿新 • • 發佈:2020-09-14
switch表示式的取值:byte,short,int,char
JDK5以後可以是列舉
JDK7以後可以是String
如下程式碼, case“A” :之後沒有break,此刻會繼續執行 case “B”:的程式碼 System.out.println("bbbbbbbb");遇到break之後,程式碼執行結束。
public static void main(String[] args) { String s = "A"; switch (s) { case "A": System.out.println("aaaaaaaa"); /* * 注意:此處如果沒有新增break,則程式碼會繼續執行,即使不滿足case條件也會執行,直到遇到break */ //break; case "B": System.out.println("bbbbbbbb"); break; default: System.out.println("others"); break; } }
結果:
default寫在最前面的情況:
public static void main(String[] args) { int x = 2; int y = 3; switch(x){ /* * default 寫在最前面,但是如果沒有寫break;,還是會無條件執行後面的語句 */ 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); }
結果:
總結:
break;語句"不是必須的"。如果不寫,如果一旦case相應的值成功,但內部沒有break語句,那麼將會無條件(不再進行case匹配)的繼續向下執行其它case中的語句,直到遇到break;語句或者到達switch語句結束。
補充知識:Java小細節——switch有無break的區別
switch大家都很熟悉,可以從一系列程式碼中選出一段去執行,它的格式如下:
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"); } } }
執行結果是:
0
1
2
3
default
=================讓我們加上break試試================
雖然switch-case中的break是可選的,但是break會較大的影響到執行的效果,所以得牢記有無break的區別。
以上這篇淺談java switch如果case後面沒有break,會出現什麼情況?就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。