Java Switch語句是流控制語句之一,它讓程序有能力根據一個或多個選項執行不同的代碼塊。默認情況是在所有選項都無法匹配時所執行的代碼塊。Switch語句可以讓程序執行多個路線中的一條,這些路線被稱為case。Switch語句可以在多個case中使用默認情況。
一、Switch語句的基本用法
Switch語句是根據變量或表達式的值執行不同的代碼塊。Switch語句包含一個switch關鍵字,後跟括號()中的變量或表達式。跟在這個括號後面是一系列的case語句,每一個case後面是一個或多個語句需要執行。在所有的case語句都執行完成後,程序繼續往下執行剩下的代碼。
switch(expression) {
case value1:
// 在expression與value1匹配時執行的代碼
break; // 可選的
case value2:
// 在expression與value2匹配時執行的代碼
break; // 可選的
// 你可以在這裡添加更多的case語句
default:
// 默認情況下要執行的代碼
}
在上面的代碼中,expression是需要檢查的變量或表達式。如果expression的值與value1匹配,那麼程序將跳轉到value1的代碼塊中執行,以此類推。如果沒有一個匹配的值,程序將執行默認情況下的代碼塊。
二、Switch語句的邏輯行為
在上面的代碼示例中,每個case語句後面跟着一個break語句。這個break語句可以讓程序跳出整個switch語句塊,如果沒有break語句,程序將繼續執行下一組case語句的代碼,這種情況被稱為fall-through。下面的例子展示了fall-through:
int day = 4;
switch (day) {
case 1:
System.out.println("星期一");
case 2:
System.out.println("星期二");
case 3:
System.out.println("星期三");
case 4:
System.out.println("星期四");
case 5:
System.out.println("星期五");
case 6:
System.out.println("星期六");
case 7:
System.out.println("星期日");
}
當上面的代碼運行時,輸出是:
星期四
星期五
星期六
星期日
這是因為程序匹配了case 4,它跳過了break語句,然後運行了所有case之後的語句,這就是fall-through。
三、默認情況
當switch語句中所有的case語句都不能與expression匹配時,程序將代碼塊跳轉到default語句。default語句是可選的,但是通常用於處理不是很常見的情況,或者作為錯誤處理的最後一個手段。
int day = 10;
switch (day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
default:
System.out.println("未知的天數");
}
在上面的代碼示例中,當day的值為10時,程序輸出「未知的天數」。
四、Switch語句的使用技巧
Switch語句可以用於很多不同的任務。下面是一些技巧,可以用於更加高效地使用Switch語句。
1. 字符串
在Java 7中,Switch語句通過字符串進行匹配。下面是一個簡單的例子:
String s = "red";
switch (s) {
case "red":
System.out.println("紅色");
break;
case "green":
System.out.println("綠色");
break;
case "blue":
System.out.println("藍色");
break;
}
上面的代碼中,Switch語句使用字符串進行匹配,輸出結果為「紅色」。
2. 枚舉
Switch語句可以用於枚舉類型變量的匹配。下面是一個例子:
enum Day {
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
Day day = Day.Monday;
switch (day) {
case Monday:
System.out.println("星期一");
break;
case Tuesday:
System.out.println("星期二");
break;
case Wednesday:
System.out.println("星期三");
break;
case Thursday:
System.out.println("星期四");
break;
case Friday:
System.out.println("星期五");
break;
case Saturday:
System.out.println("星期六");
break;
case Sunday:
System.out.println("星期日");
break;
}
上面的代碼中,Switch語句用來匹配枚舉類型變量Day。
3. 範圍匹配
Java 7中,Switch語句支持範圍匹配。下面是一個例子:
int score = 60;
switch (score) {
case 90-100:
System.out.println("A");
break;
case 80-89:
System.out.println("B");
break;
case 70-79:
System.out.println("C");
break;
case 60-69:
System.out.println("D");
break;
default:
System.out.println("E");
}
在上面的範圍匹配示例中,當score的值為60時,程序輸出「D」。
五、總結
Switch語句是使用多種類型匹配多個情況的一種流控制語句。通常,Switch語句可以使代碼更清晰,易於維護,並減少代碼量。在使用Switch語句時,需要記住一些技巧,例如為每個case添加break,避免fall-through,還可以通過使用字符串、枚舉類型、範圍匹配提高程序的效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/184546.html