在Java中,`switch`语句用于基于不同的条件执行不同的代码块,`case`语句是`switch`语句的一部分,用于定义要检查的条件。
下面是一个简单的`switch`语句的例子,其中包含了多个`case`语句:
int day = 3; String dayType; switch (day) { case 1: dayType = "Monday"; break; case 2: dayType = "Tuesday"; break; case 3: dayType = "Wednesday"; break; case 4: dayType = "Thursday"; break; case 5: dayType = "Friday"; break; case 6: dayType = "Saturday"; break; case 7: dayType = "Sunday"; break; default: dayType = "Invalid day"; break; } System.out.println(dayType);
在这个例子中,`switch`语句检查变量`day`的值,并与每个`case`语句中的值进行比较,如果找到匹配的值,那么就会执行相应的代码块,直到遇到`break`语句为止,如果没有找到匹配的值,那么就会执行`default`代码块。
`break`语句在`switch`语句中非常重要,如果没有`break`语句,那么程序会继续执行下一个`case`语句,直到遇到`break`语句或`switch`语句结束为止,这被称为“贯穿”(fall-through)。
从Java 12开始,`switch`语句还支持新的表达式形式,可以更简洁地编写多个`case`语句:
int day = 3; String dayType = switch (day) { case 1 -> "Monday"; case 2 -> "Tuesday"; case 3 -> "Wednesday"; case 4 -> "Thursday"; case 5 -> "Friday"; case 6 -> "Saturday"; case 7 -> "Sunday"; default -> "Invalid day"; }; System.out.println(dayType);
在这个例子中,每个`case`语句都使用箭头(`->`)来指定要返回的值,如果没有找到匹配的值,那么就会返回`default`代码块中指定的值,这种形式的`switch`语句更加简洁,易于阅读和维护。