選擇結構switch
switch 條件語句也是一種很常用的選擇語句,它和if條件語句不同,它隻能針對某個表達式的值作出判斷,進而決定程式執行哪一段代碼。
例如,在程式中使用數字1~7來表示星期一到星期天,如果想根據某個輸入的數字來輸出對應中文格式的星期值,可以通過下面的一段僞代碼來描述:
用于表示星期的數字
如果等于1,則輸出星期一
如果等于2,則輸出星期二
如果等于3,則輸出星期三
如果等于4,則輸出星期四
如果等于5,則輸出星期五
如果等于6,則輸出星期六
如果等于7,則輸出星期天
對于上面一段僞代碼的描述,大家可能會立刻想到用if…else if…else語句來實作,但是由于判斷條件比較多,實作起來代碼過長,不便于閱讀。
Java中提供了一種switch語句來實作這種需求,在switch語句中使用switch關鍵字來描述一個表達式,使用case關鍵字來描述和表達式結果比較的目标值,當表達式的值和某個目
标值比對時,會執行對應case下的語句。具體實作代碼如下:
int week = 5;
switch (week) {
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;
default:
System.out.println("輸入的數字不正确...");
break;
}
同時switch語句還有穿透特性
例如,要判斷一周中的某一天是否為工作日,同樣使用數字1~7來表示星期一到星期天,當輸入的數字為1、2、3、4、5時就視為工作日,否則就視為休息日。
代碼如下:
int week = 2;
switch (week) {
case 1:
case 2:
case 3:
case 4:
case 5:
// 當 week 滿足值 1、2、3、4、5 中任意一個時,處理方式相同
System.out.println("今天是工作日");
break;
case 6:
case 7:
// 當 week 滿足值 6、7 中任意一個時,處理方式相同
System.out.println("今天是休息日");
break;
}
上述代碼中,當變量week值為1、2、3、4、5中任意一個值時,處理方式相同,都會列印“今天是工作日”。同理,當變量week值為6、7中任意一個值時,列印“今天是休息日”。