陳述句句式
Calendar c = Calendar.getInstance();
//獲得一周的某天
int i = c.get(Calendar.DAY_OF_WEEK);
switch (i) {
case 0:
System.out.println("星期日");
break;
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;
default:
System.out.println("星期六");
break;
}
解釋
在 switch 陳述句中,會判斷輸入的值 (k)是多少,然后再判斷該走那天陳述句,其中 break 是不能缺少的,以為它代表著一個判斷的結束,如果沒有 break ,經不能結束對應的 case 陳述句,繼續向下走,
defaulr 表示不是上面的任何判斷,就走這個陳述句,當然也需要寫 break
switch支持和不支持的型別
支持的型別
- int 型別
- short 型別
- byte 型別
- char 型別
- enum (列舉)型別 (java5.0 之后支持)
- String (java7.0之后支持)
不支持的型別
- long 型別
- boolean 型別
- double 型別
- float 型別
這里可以創建各個型別,帶入 switch 陳述句進行驗證,
switch 的特殊用法
int year = 2020;
Scanner sc = new Scanner(System.in);
System.out.println("請輸入月份");
int month = sc.nextInt();
int day = 31;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
//判斷這一年的2月有多少天
day = year % 100 != 0 && year % 4 == 0 || year % 400 == 0 ? 29 : 28;;
break;
}
System.out.println(month + "月有" + days + "天");
以天數為例,每月的天數有一樣的,也有不一樣的,通過上述代碼的形式,可以減少代碼量,簡化代碼,這里是活用了 break 這個結束回圈的陳述句,
switch 的新功能(java 13之后的新功能)
Scanner sc = new Scanner(System.in);
System.out.println("請輸入月份");
int month = sc.nextInt();
int days = switch (month){
case 1,3,5,7,8,10,12 -> 31;
case 4,6,9,11 -> 30;
//判斷這一年的2月有多少天
default -> year % 100 != 0 && year % 4 == 0 || year % 400 == 0 ? 29 : 28;
};
System.out.println(month + "月有" + days + "天");
運行結果如下

注意:使用這個新功能,必須寫 default ,否則會報錯,
java 13 之后的 switch 陳述句支持運算式形式,可以看到,比起之前的,代碼簡潔了許多,但是畢竟是新功能,并不常用,了解即可,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/243567.html
標籤:java
上一篇:JAVA復習題(一)基礎知識
