Switch語句的case穿透
一 switch語句幾點說明:
1. case后面只能是常量,不能是變量,而且,多個case后面的值不能出現相同的.
2.case后面表達式可以接受:
基本數據類型,byte,short,char,int.換句話說能自動類型自動提升為int的都可以接受;
引用數據類型可以接受枚舉(JDK1.5),String字符串(JDK1.7)
3.default不是一定要放到最后,放到中間也不會先執行它,首先匹配case,匹配不到case才會執行default,
可以在任意位置。但是建議在最后。(default最后執行)
4.switch語句的結束條件
遇到break就結束了
執行到switch的右大括號就結束了
二 舉例說明
例1:看程序寫結果:
int x = 2;
int y = 3;
switch(x){
default:
y++;
case 3:
y++;
case 4:
y++;
break;
case 5:
y++;
}
System.out.println("y = " + y);
解答過程
x值先和case按順序依次匹配,x=2沒匹配的case,最后走了default:y++(y自增1),然后沒有
遇到break或右大括號,不跳出switch語句,繼續向下執行,遇到下面的case相當於不再進行判斷了,
遇到break或右大括號就跳出switch語句
結果是:y = 6
例2代碼練習
用switch語句鍵盤錄入月份,輸出對應的季節
import java.util.Scanner;
class sw23 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //創建鍵盤錄入對象
int month = sc.nextInt(); //將鍵盤錄入結果存儲在month
switch (month) {
case 3:
case 4:
case 5:
System.out.println(month + "月是春季");
break;
case 6:
case 7:
case 8:
System.out.println(month + "月是夏季");
break;
case 9:
case 10:
case 11:
System.out.println(month + "月是秋季");
break;
case 12:
case 1:
case 2:
System.out.println(month + "月是冬季");
break;
default:
System.out.println("對不起沒有對應的季節");
break;//可加可不加
}
}
}
