天天看點

C++程式員學Java系列之十一:流程控制語句switch,case,break,default

選擇結構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中任意一個值時,列印“今天是休息日”。