Java Switch語句是一種用於根據不同條件執行不同代碼塊的控制語句。可以用於代替多個if-else語句的情況,提高代碼的閱讀性和可維護性。在本文中,將詳細探討Java Switch語句的各種用法,同時提供代碼示例。
一、基本用法
Java Switch語句的基本語法結構如下:
switch (expression) { case value1: // case1的執行語句 break; case value2: // case2的執行語句 break; ... default: // 默認的執行語句 }
其中,expression為一個表達式,可以是整型、字符型、枚舉型或字符串類型;case後面的value必須是常量值,可以是整型、字符型、枚舉型或字符串類型;執行語句可以是任何有效的Java語句,包括代碼塊。default是可選的,當沒有任何匹配的case時執行。
下面是一個示例程序:
public class SwitchTest { public static void main(String[] args) { int dayOfWeek = 4; switch (dayOfWeek) { 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; default: System.out.println("今天是周末"); } } }
輸出結果為:“今天是周四”。
二、Switch穿透
在Java Switch語句中,如果沒有在case後面添加break語句,程序會繼續執行下一個case,這被稱為“Switch穿透”。
如果希望一個case可以匹配多個值時,也可以不加break語句。例如:
public class SwitchTest { public static void main(String[] args) { int dayOfWeek = 6; switch (dayOfWeek) { case 1: System.out.println("今天是周一"); break; case 2: case 3: case 4: case 5: System.out.println("今天是工作日"); break; case 6: case 7: System.out.println("今天是周末"); break; } } }
輸出結果為:“今天是周末”。
三、Switch與Enum
Java Enum類型是一組相關的常量值的集合。Switch語句可以很好地與Enum類型結合使用。
下面是一個示例程序:
public enum Season { SPRING, SUMMER, AUTUMN, WINTER; } public class SwitchTest { public static void main(String[] args) { Season season = Season.SUMMER; switch (season) { case SPRING: System.out.println("現在是春天"); break; case SUMMER: System.out.println("現在是夏天"); break; case AUTUMN: System.out.println("現在是秋天"); break; case WINTER: System.out.println("現在是冬天"); break; } } }
輸出結果為:“現在是夏天”。
四、Switch與String
Java Switch語句也可以用於判斷字符串類型的值。
下面是一個示例程序:
public class SwitchTest { public static void main(String[] args) { String fruit = "apple"; switch (fruit) { case "apple": case "pear": System.out.println("這是一種水果"); break; case "potato": case "tomato": System.out.println("這是一種蔬菜"); break; default: System.out.println("未知食品"); } } }
輸出結果為:“這是一種水果”。
五、Switch語句的限制
Java Switch語句雖然有很多特性,但是在實際使用中還是有一些限制的:
- expression不能是null。
- case後面的value必須是常量值,不能是變量或方法的返回值等。
- 每個case都必須有一個break語句或者return語句,否則會產生編譯錯誤。
- Switch的效率可能比if-else低,因為編譯器要把它轉換成一些比較數組的操作。
六、總結
本文介紹了Java Switch語句的基本用法以及它與Enum類型、String類型的結合使用。同時探討了Switch的限制以及它的效率問題。
Switch語句的主要優點是它可以使代碼更加可讀,增強代碼的可維護性。但是在實際應用中,需要根據具體情況綜合考慮使用if-else語句或者Switch語句。
原創文章,作者:YABO,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/135105.html