對於上面一段僞代碼的描述,大家可能會立刻想到用剛學過得if…else if…else語句來實現,但是由於判斷條件比較多,實現起來代碼過長,不便於閱讀。Java中提供了一種switch語句來實現這種需求,在switch語句中使用switch關鍵字來描述一個表達式,使用case關鍵字來描述和表達式結果比較的目標值,當表達式的值和某個目標值匹配時,會執行對應case下的語句。具體實現代碼如下:
switch(用於表示星期的數字) {
case 1 :
輸出星期一;
break;
case 2 :
輸出星期二;
break;
case 3 :
輸出星期三
break;
case 4 :
輸出星期四;
break;
case 5 :
輸出星期五;
break;
case 6:
輸出星期六;
break;
case 7:
輸出星期天;
break;
}
l 上面改寫後的僞代碼便描述了switch語句的基本語法格式,具體如下:
switch (表達式){
case 目標值1:
執行語句1
break;
case 目標值2:
執行語句2
break;
......
case 目標值n:
執行語句n
break;
default:
執行語句n+1
break;
}
在上面的格式中,switch語句將表達式的值與每個case中的目標值進行匹配,如果找到了匹配的值,會執行對應case後的語句,如果沒找到任何匹配的值,就會執行default後的語句。switch語句中的break關鍵字將在後面的做具體介紹,此處,我們只需要知道break的作用是跳出switch語句即可。
需要注意的是,在switch語句中的表達式只能是byte、short、char、int類型的值,如果傳入其它類型的值,程序會報錯。但上述說法並不嚴謹,實際上在JDK5.0中引入的新特性enum枚舉也可以作爲switch語句表達式的值,在JDK7.0中也引入了新特性,switch語句可以接收一個String類型的值。