【Java基礎知識】switch表示式、case穿透、default、switch結束條件
阿新 • • 發佈:2019-02-11
switch(表示式) {
case 值1:
語句體1;
break;
case 值2:
語句體2;
break;
...
default:
語句體n+1;
break;
}
1、格式解釋說明:
switch表示式:可以是byte,short,int,char
JDK5以後可以是列舉
JDK7以後可以是字串
case:後面的值就是要和表示式進行比較的值
break:表示程式到這裡中斷,跳出switch語句
default:如果所有的情況都不匹配,就執行這裡,相當於if語句中的else default的語句體n+1。
3、注意事項:
case 值1:
語句體1;
break;
case 值2:
語句體2;
break;
...
default:
語句體n+1;
break;
}
1、格式解釋說明:
switch表示式:可以是byte,short,int,char
JDK5以後可以是列舉
JDK7以後可以是字串
case:後面的值就是要和表示式進行比較的值
break:表示程式到這裡中斷,跳出switch語句
default:如果所有的情況都不匹配,就執行這裡,相當於if語句中的else
2、執行流程:
A:首先計算表示式的值
B:和每一個case進行匹配,如果有就執行對應的語句體,看到break就結束。
C:如果沒有匹配,就執行
A:case後面只能是常量,不能是變數,而且,多個case後面的值不能出現相同的值
B:default可以省略嗎?
可以省略,但是不建議,因為它的作用是對不正確的情況給出提示。
C:break可以省略嗎?
可以省略,但是結果可能不是我們想要的。
會出現一個現象:case穿透,最終我們建議不要省略
D:default一定要在最後嗎?
不是,可以在任意位置。但是建議在最後。
E:switch語句的結束條件a:遇到break就結束了b:執行到末尾就結束了
case案例演示:
<pre name="code" class="java">import java.util.Scanner; class SwitchTest4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("請輸入月份(1-12):"); int month = sc.nextInt(); //case穿透 switch(month) { case 1: case 2: case 12: System.out.println("冬季"); break; case 3: case 4: case 5: System.out.println("春季"); break; case 6: case 7: case 8: System.out.println("夏季"); break; case 9: case 10: case 11: System.out.println("秋季"); break; default: System.out.println("你輸入的月份有誤"); } } }