1.多項選擇運算符:switch

Java 有另一個有趣的運算符,它繼承自它的祖父 (C++)。我們正在談論switch聲明。我們也可以稱其為多項選擇運算符。看起來有點麻煩:
switch(expression)
{
case value1: code1;
case value2: code2;
case value3: code3;
}
括號內指示表達式或變量。如果表達式的值為value1,則 Java 機器開始執行code1。如果表達式等於value2,則執行跳轉到code2。如果表達式等於value3,則code3執行。
例子:
| 代碼 | 控制台輸出 |
|---|---|
|
|
2.break聲明在switch
語句的一個重要特徵switch是程序只是跳轉到所需的行(到所需的代碼塊),然後執行所有代碼塊,直到switch. 不僅是中的值對應的代碼塊switch,還有直到結束的所有代碼塊switch。
例子:
| 代碼 | 控制台輸出 |
|---|---|
|
|
給定溫度36,程序會進入switch語句,跳轉到並執行第一塊代碼(第一種情況),然後高高興興地執行剩下的代碼塊。
如果你只想執行一個代碼塊——與匹配案例相關聯的代碼塊——那麼你需要用一條break語句結束該塊;
例子:
| 代碼 | 控制台輸出 |
|---|---|
|
|
您可以省略break語句的最後一個 case switch,因為該塊是最後一個有或沒有 break 語句的塊。
3.默認動作:default
另一個重點。如果列出的所有情況都不匹配switch括號中的表達式,會發生什麼情況?
switch如果沒有找到匹配的 case,則跳過語句的其餘部分,程序將在大括號結束switch語句後繼續執行。
也就是說,您還可以使switch語句的行為類似於語句中的 else 分支if-else。為此,請使用default關鍵字。
case如果塊中沒有一個sswitch與表達式的值匹配並且switch有default塊,則將執行 default 塊。例子:
| 代碼 | 控制台輸出 |
|---|---|
|
|
4.比較switch和if-else
語句switch有點類似於if-else語句,只是更複雜。
您始終可以將一條語句的代碼重寫switch為多條if語句。例子:
| 帶開關的代碼 | 用 if-else 編碼 |
|---|---|
|
|
左邊的代碼將與右邊的代碼完全一樣。
當一個語句在每個單獨的情況下包含各種複雜表達式時,多個語句鍊if-else是更可取的。if
5. 語句中可以使用哪些表達式switch?
並非所有類型都可以用作語句case中的標籤switch。您可以使用以下類型的文字:
- 整數類型:
byte,short,int,long charString- 任何
enum類型
您不能使用任何其他類型作為案例標籤。
使用enuminsideswitch語句的示例:
Day day = Day.MONDAY;
switch (day)
{
case MONDAY:
System.out.println("Monday");
break;
case TUESDAY:
System.out.println("Tuesday");
break;
case WEDNESDAY:
System.out.println("Wednesday");
break;
case THURSDAY:
System.out.println("Thursday");
break;
case FRIDAY:
System.out.println("Friday");
break;
case SATURDAY:
System.out.println("Saturday");
break;
case SUNDAY:
System.out.println("Sunday");
break;
}
注意:如果使用enuminsideswitch語句,則不需要在case標籤中的每個值前面寫上類名。只寫值就夠了。
GO TO FULL VERSION