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
块,则将执行默认块。例子:
代码 | 控制台输出 |
---|---|
|
|
4.比较switch
和if-else
语句switch
有点类似于if-else
语句,只是更复杂。
您始终可以将一条语句的代码重写switch
为多条if
语句。例子:
带开关的代码 | 用 if-else 编码 |
---|---|
|
|
左边的代码将与右边的代码完全一样。
当一个语句在每个单独的案例中包含各种复杂表达式时,多个语句链if-else
是更可取的。if
5. 语句中可以使用哪些表达式switch
?
并非所有类型都可以用作语句case
中的标签switch
。您可以使用以下类型的文字:
- 整数类型:
byte
,short
,int
,long
char
String
- 任何
enum
类型
您不能使用任何其他类型作为案例标签。
使用enum
insideswitch
语句的示例:
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;
}
注意:如果使用enum
insideswitch
语句,则不需要在标签中的每个值前面写上类名case
。只写值就够了。
GO TO FULL VERSION