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 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