一、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-hant/n/276734.html