一、switch case語句的基本用法
Java中的switch case語句用於在多個可能的選項中進行選擇,其基本的結構如下:
switch (expression) {
case value1:
// statements
break;
case value2:
// statements
break;
...
default:
// statements
break;
}
switch後面的(expression)是需要進行匹配的值,而value1,value2是可能的選項值,如果匹配上了選項值,那麼就執行相應的語句,如果沒有匹配上任何一個選項就會執行default後面的語句。break語句用於退出switch語句,確保只執行匹配選項後的語句。
下面是一個例子,演示使用switch case語句得到當前月份的名稱:
import java.util.Scanner;
public class MonthNameDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("請輸入一個月份的數字:");
int monthNum = sc.nextInt();
switch (monthNum) {
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;
case 8:
System.out.println("八月");
break;
case 9:
System.out.println("九月");
break;
case 10:
System.out.println("十月");
break;
case 11:
System.out.println("十一月");
break;
case 12:
System.out.println("十二月");
break;
default:
System.out.println("輸入的月份無效!");
break;
}
}
}
上述代碼中,用戶需要輸入一個1到12之間的數字,然後根據輸入的數字使用switch case語句得到相應月份的名稱。如果輸入的數字不在1到12之間,就輸出「輸入的月份無效!」。
二、switch case語句的常見應用
1. 字元串匹配
Java SE 7以上版本支持在switch語句中使用字元串,實現字元串的匹配。例如:
public class StringSwitchDemo {
public static void main(String[] args) {
String fruit = "orange";
int price = 0;
switch (fruit) {
case "apple":
price = 10;
break;
case "pear":
price = 8;
break;
case "orange":
price = 6;
break;
default:
price = 0;
break;
}
System.out.println(fruit+"的價格是:"+price);
}
}
以上代碼演示了通過switch case語句,得到不同種類水果的價格。注意,fruit是字元串類型變數。
2. 枚舉類型匹配
當我們需要處理的數據都是已知的一組值時,枚舉類型會很有用。枚舉類型提供了更清晰的語義,使代碼更易讀,並且可以有效地使用switch語句處理。
下面是一個演示怎樣使用switch語句處理枚舉類型(Grade)的例子:
public class GradeEnumDemo {
public static void main(String[] args) {
Grade grade = Grade.GOOD;
switch (grade) {
case EXCELLENT:
System.out.println("A優秀");
break;
case GOOD:
System.out.println("B良好");
break;
case FAIR:
System.out.println("C及格");
break;
case POOR:
System.out.println("D不及格");
break;
default:
System.out.println("未評定");
break;
}
}
}
enum Grade {
EXCELLENT, GOOD, FAIR, POOR;
}
上述代碼中,枚舉類型Grade包括四個值:EXCELLENT, GOOD, FAIR, POOR。根據不同的枚舉值,使用switch case語句輸出相應的等級。Grade是通過enum定義實現的枚舉類型。
三、switch case語句的本質
Java SE規範中定義,switch語句由多個case分支和一個可選的default分支組成。case分支以及default分支本質上都是一個標籤(Label)。在Java中,標籤可以是任何字元或者字元串,並且以冒號結尾。
在程序執行過程中,當遇到一個標籤時,就會執行標籤後面的語句。換句話說,switch語句的本質是一個帶標籤的goto語句。標籤放在每個case分支和default分支前面,而跳轉語句(類似於goto)由Java編譯器自己負責編譯產生,這就使得我們的程序看起來更加的優雅,更易於理解。
四、switch case語句的缺點和使用限制
1. switch語句不支持浮點型和布爾型數據類型。
2. switch語句不能使用範圍,必須使用固定值,即case中只能使用常量或者final變數。
3. switch語句的預設分支應該放在最後,而不是中間或者最前面。
4. 如果在程序中需要嵌套很多的switch語句時,容易造成代碼難以讀懂也容易出錯。
5. Java SE 7以上版本支持在switch語句中使用字元串,但是這種方法不如使用if-else語句的效率高。
總結
本文介紹了Java中switch case語句的基礎用法和常見應用,比如字元串匹配和枚舉類型匹配。同時,也分析了switch case語句的本質以及使用時需要注意的限制。在Java的開發過程中,判斷語句是非常必要的,選擇switch case語句或者if-else語句要根據實際情況判斷,編寫優質可維護的代碼。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/276734.html
微信掃一掃
支付寶掃一掃