浅谈C语言中switch 语句的嵌套使用

来源 :科学时代·下半月 | 被引量 : 0次 | 上传用户:nikecb
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】switch语句是一种分支控制语句,它的应用在程序设计中起到了很重要的作用。由于其格式复杂,对于初学者来说很难掌握,switch语句的嵌套使用更是让初学者难以理解。本文通过介绍switch嵌套语句的形式、break语句的作用,以及分析一个实例,以期初学者在这方面有更好的认识和把握。
  【关键词】C语言;switch语句;嵌套
  
  C语言中,if-else语句能实现多分支结构的程序设计,但是如果分支较多,则嵌套的if语句层就越多,由此编写的程序不够直观,难以理解,给编程和阅读带来了很大的困难。然而,C语言中还提供了另外一种分支控制语句,那就是switch语句,又称开关语句。switch语句的应用给编程者带来了不少便利,但又由于它格式复杂(C语言中最复杂的)[1],对于有些初学者来说,很难理解掌握,更不用说switch语句的嵌套使用了。为了让初学者能更全面的了解掌握switch语句的使用,现就对switch语句中嵌套使用switch语句浅谈如下:
  一、switch嵌套语句的一般形式:
  switch(表达式)
   {
   case 常量1: 语句1
  case 常量2: switch(表达式)
   { case 常量1: 语句1
   case 常量2: 语句2
   ……
   case 常量n: 语句n
   default :语句n+1
  }
   ……
  case 常量n: 语句n
  default :语句n+1
  }
  首先计算switch后面括号中表达式的值,然后用此值依次与各个case的常量表达式比较:若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句;若圆括号中表达式的值与所有case后面的常量表达式都不等,则执行default后面的语句n+1。若执行的case后面是嵌套的switch语句时,同样要先计算该嵌套switch后面括号内的值,与case的常量表达式比较。实际上跟执行一个新的switch语句一样。
  二、 break语句是switch嵌套语句的关键。
  case常量起的是语句标号的作用,程序并不在此进行判断。因此,一旦与switch后面括号中表达式的值相等,就从此标号处开始执行,而且执行完一个case后面的语句后,若没遇到break语句,就自动进入下一个case继续执行,而不再判断是否与之相等,直到遇到break语句才停止执行。所以说,若想执行一个case分之后立即跳出switch语句,特别是跳出嵌套的switch语句,就必须在相应的分支最后添加一个break语句。在这里要强调break语句跳出的是当前执行的switch语句。
  
  三、 switch语句嵌套使用的简单实例
  程序实例:
  #include"stdio.h"
  void main()
  {
   int a=3,b=9,c=6;
   switch(a>0) // 因为a=3>0,判断是真得1(逻辑真为1,假为0),继续执行
  {case 1:switch(b<10) //因为b=9<10,判断是真得1,继续执行
   {case 1:printf("@");break;//输出“@”,遇到break跳出该层switch,继续执行
  case 0:printf("!");break;
   }
  case 0:switch(c==6) //因为c=6,判断为真得1,继续执行
  {case 0:printf("*");break;
   case 1:printf("#");break; //输出“#”遇到break将跳出该层switch,继续执行
   default:printf("%%");break;
  }
  default:printf("&"); //由于此时default在内层switch外不受影响,继续执行输出“&”
   }
  printf("\n");//输出回车
  }
  输出结果,见图1
  图1 程序执行结果
  四、结束语
  本文介绍了switch语句中嵌套使用switch语句,其实switch语句中还可以嵌套for等语句,有兴趣的读者可以自己编写相应程序,并在visual C++上运行。在C语言中,对于分支数较多且容易表示成switch形式的情况,最好使用switch语句[2],它的可读性、可理解性都要比if嵌套好得多,特别是switch的嵌套使用在程序设计中有时更显优势。
  
  参考文献
  [1] 王凤英.C语言的switch辨析[J],计算机教与学,2001年,第1期:39-40.
  [2] 宋雅娟.深入探析C语言中多分支結构的性能[J],长春大学学报,2007年,第10M期:66-69.
  [3] 杨路明.C语言程序设计[M],北京:北京邮电大学出版社,2005,51-53
其他文献
【摘要】随着基础设施建设事业的迅速发展,建筑工程监理工作在“三控制”、“两管理”、“一协调”的基础上将“安全控制”和“现场文明施工控制”纳入监理工作范畴尤为重要,这必将顺应新形式下可持续发展的大气候。监理工作中需充分处理好“五控”的辨证关系,使建筑工程建设事业更上一个新的台阶。  【关键词】建筑工程;监理    1.问题的提出  我国的建筑工程建设事业在最近的几十年中以形式上的由“人海战术、经验管
期刊
【摘要】通过研究在速滑运动训练中对运动员进行自我效能、心理定向等心理训练,提高运动员在赛前的竞技状态及心理素质,使运动员在比赛中取得优异的成绩。  【关键词】速滑运动员;竞技状态;心理素质;自我效能;心理定向    1引言  随着我国速度滑冰运动的飞速发展,运动训练水平的不断提高,涌现出许多世界级优秀运动员,获得了不少世界冠军,运动成绩也在不断的提高。但同时,也发现运动员在很多场比赛中由于赛前准备
期刊
摘要:研究了苯乙烯-[乙烯-(乙烯-丙烯)]-苯乙烯嵌段共聚物(SEEPS)熔体的黏弹行为, 求解了一些特征黏弹参数. 并用改进的BSW模型模拟了松弛时间谱, 给出了弹性体SEEPS最长的松弛时间(τmax). 用时温叠加原理得到的储能模量(G′)-频率(ω)曲线在低w区域出现了明显的“第二平台”.
期刊
【摘要】文章从制度管理、过程管理、队伍管理三方面对当前的供电生產管理进行一系列的分析和探索,提出了一些措施和建议。  【关键词】供电企业;生产;管理    随着电力系统改革不断深入和县级供电企业迅速发展,生产管理工作不再是传统意义上为经营服务的纯消费型,而是在确保安全生产的基础上,以经济效益为中心,实现企业效益最大化的生产经营型。如何让公司高效运转、协调发展,如何采用现代的安全生产管理方法来提高供
期刊
摘 要:本文主要是作者结合自身的工作实际,对航道疏浚工程的具体施工方法做的详细的论述,并谈到在施工中如何规避风险,提高工作效率,降低生产成本。  关键词:航道工程 疏浚 施工技术 措施  前 言:  水利疏浚目前存在的最大问题是弃土问题。疏浚弃土污染、流动性强,并受城市周边弃土堆场地理位置条件限制,疏浚弃土越来越难解决。同时疏浚弃土尾水排放问题,一直是疏浚工程的一点困难,疏浚技术规范中有排放标准
期刊
期刊
【摘要】目前,节能已经是全球性问题,在空压机供气领域能否应用变频调速技术,节省电能的同时改善空压机性能,提高供气品质就成为一个广受社会各界关注的问题。 对设备进行技术提升后,可以大大降低企业的生产成本,降低生产设备的故障率,延长设备的使用寿命,产生较大的经济效益和社会、环境效益。我们进行技术变频调速后,节电率在15%—30%范围内,通常1年到2年左右内可收回变频器的设备和其他安装等附加费用等投资。
期刊
【摘要】当前变电站的建立变得十分普遍,监控系统对于变电站综合自动化系统有着重要的作用,可以对变电站的测量实施有效的行监控。随着电力工程的不断发展,对于监控系统提出了更為研究的要求,本文重点研究分析了变电站自动化监控系统的功能及维护措施。  【关键词】变电站;监控系统;硬件    变电站综合自动化主要是综合了计算机技术、电子技术、通信技术、数字信号处理技术等各项现代化技术,变电站综合自动化对于变电站
期刊
【摘要】班主任与学生交流沟通的方式主要有口头沟通、书面沟通和媒介沟通三种。只有做好与学生的交流与沟通工作,班级管理才能得心应手。   【关键词】班主任 学生;交流沟通;班级管理    在学校里,经常能听到一些老师发感慨:“现在的孩子太难管了,不知道他们在想些什么!” “现在的学生对立心理很强,” 在我们的教学工作中,常常会有一些老师不知不觉地犯这样一个观念上的错误:自己说的话,自己做的事永远是正确
期刊
【摘要】目前,多层砖混结构墙体大多采用煤矸石多孔砖作为砌筑材料,为减少交房后墙体空鼓裂缝等质量通病的发生,针对此种材料内墙抹灰材料的选择及配合比的控制已凸显重要。  【关键词】煤矸石多孔砖;空鼓裂缝;配合比;施工方法    一、第一期工程现场抽查及经验总结  试片墙混合砂浆参照L06J002砖墙做法及结构施工图要求,水泥石灰膏砂浆配合比及厚度为:底灰1:1:6,厚度7mm;第二道灰1:0.3 :3
期刊