一、基本語法
switch語句是Java中的一種流程式控制制語句,可以根據表達式的值,匹配相應的case分支執行對應代碼。其基本語法如下:
switch(expression){
case value1:
//執行代碼塊1
break;
case value2:
//執行代碼塊2
break;
...
default:
//執行默認代碼塊
}
其中expression為表達式,value1、value2為常量值。case分支可以有多個,對應不同的常量值。當expression的值與某個case的常量值相等時,該case分支中的代碼塊將被執行。default分支可選,當所有case分支都不滿足時,將執行default分支中的代碼塊。
二、兼容性問題
在Java SE 5.0版本之前,switch語句只能使用枚舉類型、整數類型(byte、short、char、int)和String類型作為表達式。在Java SE 7版本之後,switch語句可以使用枚舉類型、整數類型、String類型以及對應包裝類和枚舉類型的可轉換類型,比如byte、short、char、int。
需要注意的是,對於可轉換類型,Java會先將其轉換為對應整數類型(int、byte、short),然後再進行匹配判斷。如果表達式的類型不符合要求,編譯器將報錯。
三、switch語句的注意事項
1、case分支的常量值不能重複
如下例子:
int i = 1;
switch(i){
case 1:
//執行代碼塊1
break;
case 1:
//執行代碼塊2
break;
}
由於case常量值重複,編譯器將報錯。
2、case分支中不能有重複代碼
如下例子:
int i = 1;
switch(i){
case 1:
//執行代碼塊1
break;
case 2:
//執行代碼塊1
break;
}
由於case分支存在重複代碼,編譯器將報錯。
3、case分支的順序
case分支的順序不會影響表達式的值與常量值的匹配,但是順序的改變會影響程序的效率。在選擇case分支的常量值時,應該把最可能出現的常量值放在前面,以提高程序的效率。
四、示例代碼
下面是一個使用switch語句的示例代碼:
public class SwitchDemo {
public static void main(String[] args) {
int month = 8;
String monthString;
switch (month) {
case 1: monthString = "January";
break;
case 2: monthString = "February";
break;
case 3: monthString = "March";
break;
case 4: monthString = "April";
break;
case 5: monthString = "May";
break;
case 6: monthString = "June";
break;
case 7: monthString = "July";
break;
case 8: monthString = "August";
break;
case 9: monthString = "September";
break;
case 10: monthString = "October";
break;
case 11: monthString = "November";
break;
case 12: monthString = "December";
break;
default: monthString = "Invalid month";
break;
}
System.out.println("Month " + month + " is " + monthString);
}
}
以上代碼是一個根據月份輸出月份名稱的程序。在switch語句的表達式中,變數month的值為8。根據case分支中的常量值,匹配到case 8分支,執行其中列印字元串的代碼塊,輸出”Month 8 is August”。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/181709.html
微信掃一掃
支付寶掃一掃