多路开关模式的switch语句

在实例10中,将break语句去掉之后,会将符合检验条件后的所有语句都输出。利用这个特点,可以设计多路开关模式的switch语句,例如:在平年一年12个月,1、3、5、7、8、10、12月是31天,4、6、9、11月是30天,2月是28天,如果在控制台上任意输入月份,就可以知道这个月有多少天。这种情况,就可以使用switch语句的多路开关模式,它的形式如下:


从形式中可以看到如果在case2后不使用break语句,那么符合检验时与符合case 3检验时的效果是一样的。也就是说,使用多路开关模式,可以使多种检验条件用一个语句块输出。 

switch(表达式)

{

    case 1:

         语句1

        break;

    case 2:

    case 3:

         语句2

         break;

    …

    default:

         默认语句

         break;

}

实例11 输入的某个月份属于哪个季节

在本实例中,要求使用switch语句判断控制台输入的某个月份属于哪个季节,已知3、4、5月是春季,6、7、8月为夏季,9、10、11为秋季,12、1、2月为冬季。具体代码如下:

01  #include<stdio.h>

02  int main()

03  {

04       int month;                                          /*定义变量月份*/

05       printf("please enter a month:\n");

06       scanf("%d",&month);                           /*输入月份*/

07       switch(month)                                  /*根据月份分季节*/

08       {

09           /*多路开关模式*/

10            case 3:

11            case 4:   

12            case 5:

13                printf("%d is spring\n",month);     /*3,4,5月是春季*/

14                break;

15            /*多路开关模式*/

16            case 6:

17            case 7:   

18            case 8:

19                printf("%d is summer\n",month);     /*6,7,8月是夏季*/

20                break;

21            /*多路开关模式*/

22            case 9:

23            case 10:   

24            case 11:

25                printf("%d is autumn\n",month);     /*9,10,11月是秋季*/

26                break;

27            /*多路开关模式*/

28            case 12:

29            case 1:    

30            case 2:

31                printf("%d is winter\n",month);     /*12,1,2月是冬季*/

32                break;

33            default:

34                printf("error!!!\n");                    /*无此月份*/

35         }

36         return 0;                                    /*程序结束*/

37  }

运行程序,显示结果如图6.21所示。

图6.21 季节运行图

从该实例代码和运行结果可以看出:

程序中使用多路开关模式,使得检测month的值为3、4、5这3种情况时,都会执行相同的操作,并且利用default语句将不符合的数字显示,提示信息表示输入错误。

练一练:

已知一个灯泡并联3个开关,分别为开关1,开关2,开关3,;另一串彩灯串联一个开关4,开关5和开关6并联一个白炽灯和节能灯,问随意按下开关哪个灯能亮?


感谢读者朋友对明日科技的支持,如果您对图书中的讲解及光盘源码有任何问题,可以直接登录http://www.mingrisoft.com上的社区进行发贴,把您的问题详细的说明一下,我们的技术人员会在那里给您回复!

本文摘自明日科技出版的《零基础学C语言》,转载请注明出处!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值