开关语句也是一种用来实现多方向条件分支的语句。虽然采用条件语句也可以实现多方向条件分支,但是当分支较多时会使条件语句的嵌套层次太多,程序冗长,可读性降低。开关语句直接处理多分支选择,使程序结构清晰,使用方便。开关语句是用关键字switch构成的,它的一般形式如下:
开关语句的执行过程是:将switch后面表达式的值与case后面各个常量表达式的值逐个进行比较,在遇到匹配时,就执行相应case后面的语句,然后执行break语句,break语句又称间断语句,它的功能是中止当前语句的执行,使程序跳出switch语句。若无匹配的情况,则只执行语句d。开关语句的执行过程如图2.3所示。
图2.3 开关语句的执行过程
例2-14 开关语句的使用。
本程序按照输入的年份year和月份month,计算该月有多少天。程序需要判断该年是否为闰年。闰年的2月有29天,平年的2月只有28天。闰年的条件是:年份数year能被4整除,但不能被100整除;或者年份数year能被400整除。这个条件可以用一个逻辑关系式来表达:
year%4==0&&year%100!=0||year%400==0
当这个表达式的值为真(非0值)时,year为闰年,否则为平年。
程序执行结果: