Java基礎之選擇語句--switch
switch語句格式:
switch(表達式) {
case 常量值1:
語句體1;
break;
case 常量值2:
語句體2;
break;
...
default:
語句體n+1;
break;
}
執行流程
o 首先計算出表達式的值
o 其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結束。
o 最後,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然後程序結束掉。
要求這個表達式最後必須能計算出一個準確的結果,並且這個結果的類型只能是 byte short intchar enum(枚舉), 在JDK7以後增加了字符串類型。
break的作用是結束switch語句,跳出switch語句。
switch語句練習-春夏秋冬
o 需求:一年有12個月,分屬於春夏秋冬4個季節,鍵盤錄入一個月份,請用程序實現判斷該月份屬於哪個季節,並輸出。
o 演示效果
輸入: 1、2、12 輸出:冬季
輸入: 3、4、5 輸出:春季
輸入: 6、7、8 輸出:夏季
輸入: 9、10、11 輸出:秋季
輸入:其它數字 輸出:數字有誤
public static void main(String[] args) {
//定義月份變量,判斷季節
Scanner sc = new Scanner(System.in);
System.out.println("請輸入月份:");
int month = sc.nextInt();//6
//switch語句實現選擇
switch(month) {
case 1:
System.out.println("冬季");
break;
case 2:
System.out.println("冬季");
break;
case 3:
System.out.println("春季");
break;
case 4:
System.out.println("春季");
break;
case 5:
System.out.println("春季");
break;
case 6:
System.out.println("夏季");
break;
case 7:
System.out.println("夏季");
break;
case 8:
System.out.println("夏季");
break;
case 9:
System.out.println("秋季");
break;
case 10:
System.out.println("秋季");
break;
case 11:
System.out.println("秋季");
break;
case 12:
System.out.println("冬季");
break;
default:
System.out.println("你輸入的月份數字有誤");
break;
}
}
case的穿透性
在switch語句中,如果case的後面不寫break,將出現穿透現象,也就是不會在判斷下一個case的值,直接向後運行,直到遇到break,或者整體switch結束。
public static void main(String[] args) {
//定義月份變量,判斷季節
Scanner sc = new Scanner(System.in);
System.out.println("請輸入月份:");
int month = sc.nextInt();//3
//switch語句實現選擇
switch(month) {
case 12:
case 1:
case 2:
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("你輸入的月份數字有誤");
break;
}
}
上述程序中,執行case3後,由於沒有break語句,程序會一直向後走,不會在判斷case,直接向下運行,直到遇到break關鍵字,纔會結束switch語句。