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

switch(表达式){case 1:语句1break;case 2:case 3:语句2break;…default:默认语句break;}

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

实例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并联一个白炽灯和节能灯,问随意按下开关哪个灯能亮?

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

转载于:https://www.cnblogs.com/mrxy/p/8339970.html

多路开关模式的switch语句相关推荐

  1. c#语言swith的用法,C# switch 语句 | Microsoft Docs

    switch(C# 参考) 04/09/2019 本文内容 本文介绍 switch 语句. 有关 switch 表达式(在 C# 8.0 中引入)的信息,请参阅 表达式和运算符部分中有关 switch ...

  2. 通过引入switch表达式来增强Java switch语句

    去年12月下旬,我发布了" Switch Expressions Coming Java? 从那时起,进行了广泛的讨论,表达了意见分歧,现在就Java的switch表达式的未来达成了共识. ...

  3. 为什么不能在字符串上使用switch语句?

    此功能是否将在以后的Java版本中使用? 有人可以解释为什么我不能这样做吗,例如Java的switch语句的技术方式? #1楼 Groovy轻而易举: 我嵌入了groovy jar并创建了一个groo ...

  4. java switch 条件_Java ——if条件语句 switch语句

    本节重点思维导图 if条件语句 //如果条件表达式成立,执行语句块 if(条件表达式){ //-语句块 } 如果语句块只有一条语句,大括号可以省略,否则不能省略. 建议,不管有几条语句,都不要省略大括 ...

  5. c语言switch不允许实型,C语言中switch语句什么意思

    Switch在C语言中是保留字,其作用是进行判断选择.switch(开关语句)常和case break default一起使用. Switch用在编程中,如C语言中它经常跟Case一起使用,是一个判断 ...

  6. 蓝鸥Unity开发基础——Switch语句学习笔记

    一.Switch语法 属于多分支语句,通过判断表达式的值,来决定执行哪个分支 Break用于结束某个case,然后执行switch之外的语句 Switch-开关:case-情况开关决定发生的情况 二. ...

  7. java - 策略模式、状态模式、卫语句,避免多重if-else(转)

    前言 当代码中出现多重if-else语句或者switch语句时.弊端之一:如果这样的代码出现在多处,那么一旦出现需求变更,就需要把所有地方的if-else或者switch代码进行更改,要是遗漏了某一处 ...

  8. java 圈复杂度_关于Java:降低Switch语句的循环复杂度-Sonar

    我想减少开关盒的圈复杂度 我的代码是: public String getCalenderName() { switch (type) { case COUNTRY: return country = ...

  9. c语言 switch语句大小,C语言switch语句(板式整齐)

    <C语言switch语句(板式整齐)>由会员分享,可在线阅读,更多相关<C语言switch语句(板式整齐)(38页珍藏版)>请在人人文库网上搜索. 1.switch 语句,1, ...

最新文章

  1. Linux系统日志分析与管理(14)
  2. java多线程提高性能写法
  3. 仅使用HTML和CSS实现的标签云效果
  4. [CQOI2014]通配符匹配
  5. mysql数据库总览_MySQL架构总览-查询执行流程-SQL解析顺序
  6. netty源码阅读之UnpooledByteBufAllocator
  7. python中wraps_【Python】Flask中@wraps的使用
  8. 图论--最小生成树总结(PrimKruskal)
  9. springboot前台页面写Java代码,接收后台数据,SpringBoot整合Thymeleaf的使用
  10. python,PyQt5编程将qrc文件转为py文件
  11. 【网络流量识别】【聚类】【一】模糊聚类FCS和GA—网络安全网络流量功能的模糊聚类
  12. 新手20天自学吉他入门
  13. docker 安装wiki.js 和wekan
  14. ps模糊照片变清晰步骤东方逐梦
  15. Moneybookers API支付方式开发 步骤
  16. 图标.svg html怎么换颜色,如何改变SVG图像的颜色使用CSS(jQuery SVG图像替换)?
  17. android商店账号密码错误,android app 自定义签名出现错误:Keystore was tampered with, or password was incorrect...
  18. 领存!专注为军工业提供计算、存储、加密以及数据安全的系统服务
  19. python怎么判断真假_Python不超过10行代码就可实现人脸识别,教你辨别真假
  20. python 内部收益率_用Python计算可变现金流内部收益率(pandas)

热门文章

  1. 10分钟教会你Apache Shiro
  2. HMC支持管理服务器数量及适合POWER6服务器的HMC型号
  3. locktty锁终端的方法
  4. 2016年11月5日20:42:09
  5. 【吐槽】VS2012的安装项目只能用InstallShield Limited Edition
  6. Eclipse europa 更新时 Error retrieving feature.xml. [error in opening zip file]的解决
  7. Java中的新生代、老年代和永久代
  8. TiDB集群大规模删除实践
  9. Google BBR拥塞控制算法模型初探
  10. spring随笔(三)DataBase