Java与Android移动应用开发:技术、方法与实践
上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变量的值。