上QQ阅读APP看书,第一时间看更新
5.3 switch语句
switch语句结构适用于只有一个条件但结果可能有多个值的情况。Java中,switch语句结构的基本应用格式如下。
switch(<表达式>) { case <值1>: <语句块1> break; case <值2> <语句块2> break; default: <语句块n> break; }
switch语句结构中,<表达式>可能会产生多个值,为<值1>时执行<语句块1>,为<值2>时执行<语句块2>,没有匹配的值时执行<语句块n>。其中,可以有多个case语句,但default语句只能有一个或者零个,一般用于处理意外的数据。
请注意,每个case和default语句块的最后都会有一个“break;”语句,其功能是终止当前代码块的执行,并跳出switch语句结构。
下面的代码会通过方向的枚举值显示相应的信息。
可以修改变量d的值来观察运行结果。
使用switch语句结构时,还可以利用case自动向下贯穿的功能,也就是在特定的case语句段中不使用break语句。例如,下面的代码将计算指定年份和月份中的天数。
图5-2 使用case语句的贯穿功能
代码执行结果如图5-2所示。
示例中,当month的值为1、3、5、7、8、10时,并没有执行任何代码,而是向下贯穿到值为12的case代码块。在这里,将daysOfMonth变量设置为31后,使用break语句退出switch结构。
接下来,当month的值为4、6、9、11时,也执行相似的逻辑。只有在month为2时,才会根据闰年情况设置daysOfMonth变量的值。