
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
5.5.1 语法结构

switch选择语句又被称为switch语句。switch语句由条件和case语句组成。其语法形式如下:

其中,“控制表达式”就是条件,它必须是int、byte、short、char类型或枚举类型(枚举类型会在后面进行讲解)。从Java 7开始支持String类型。
注意:switch后面可以跟多个case语句,所以需要合理安排case的顺序。
switch语句的执行流程如图5.13所示。首先判断控制表达式的值与value1值是否相等,如果相等,则从当前case开始,顺序执行后面的case语句;如果不相等,则判断控制表达式的值与value2值是否相等,如果相等,则从当前case开始,顺序执行后面的case语句;如果不相等,则判断控制表达式的值与value3值是否相等,依次类推。如果控制表达式与case后面的value值都不相等,此时会直接跳出switch语句。

图5.13 switch语句的执行流程
【示例5-7】下面将使用switch语句输出一个2年级的学生转学后,还需要上哪些年级。代码如下:

运行结果如下:

注意:case后面的value值必须是常量、各个value值必须不同,否则会输出错误信息,如以下代码:


此时有两个case后面的值重复了,此时会输出以下错误信息:

在case语句中可以包含多条语句,它们可以不使用大括号括起来,如以下代码:

运行结果如下:

