VisualStudio 2015的发布,跟随而来的相关的教程的空白,这里讲逐步在VisualStudio 2015上讲解C语言相关的系列视频教程经验(注:由于视频修改难度大,所以先暂时发布文档,视频后期逐步补上),本文主要涉及:①switch语句概念的介绍;②对case语句的用法进行举证;③对break语句的用法进行举证;④switch语句的应用;
工具/原料
Visual Studio 2015
Windows 8.1 x64
介绍
1、switch case语句用来帮助控制复杂的条件分支操作,switch语句控制是否进入语句对应的代码块;当有case常量表达式匹配switch表达式,switch语句可以是任何的case实例,但是在一个switch语句中,两个case常量不能够有相同的值,执行语句体主要是从匹配的case语句开始处理,直到switch执行完毕,或者遇到break关键字;
2、①可以使用break来结束特定case语句的处理,否则switch将从该分支执行到switch结束;没有了break,程序将继续执行下一个case语句,直到遇到了break或者switch语句结束;②如果没有case常量等于switch常量,default语句将被执行,如果defalut语句被省略,并且没有case常量匹配switch表达式,那么switch语句将不会被执行,在switch语句中default语句最多只能够出现一次,default并不需要放到switch的最后,default和case一样可以出现在switch体内的任何地方;③switch表达式和case常量表达式都必须是整数,而且每一个case常量的值必须是唯一的;④case和defalut语句仅仅决定了从哪一个语句体开始执行,哪些switch语句可能被嵌套;
3、注:VC没有限制switch语句中case值的大小,但是ANSIC要求case值最小是257;
举证
1、下图的例子显示的是同时在两个case的常数表达式中使用10的情况;通过下图可以看到:① 第二个case10下面多一个红色的波浪线,表示出现了错误;②输出窗口同样报出了case值“10”已经使用的错误;③第15行依然存在红色的波浪线;④输出窗口同样给出了提示:main.c(15): error C2051: case 表达式不是常量的错误提示;说明:① 一个switch语句中,两个case常量不能够有相同的值② case表达式必须是常量注:对于错误提示,main.c说明的是错误的文件名,(15)说明的是错误发生的行数;
2、下图是分别输入10,15,17,9的情况;① 由于输入的是10,所以从case 10开始执行,由于case 10 后没有break,所以会继续执行case 13;由于case 13后面也没有break,所以会继续执行case 15,而case 15后有break,所以输完case 15的情况后便停止了;② 由于输入的是15,所以从case 15开始执行,由于case 15后有一个break,所以输完case 15以后就停止了;③ 由于输入的是17,所以从case 17开始执行,由于case 17 后没有break,所以继续执行default的情况;④ 由于输入的是9,而case常量中没有9,所以直接从default开始执行;说明了:① case和defalut语句仅仅决定了从哪一个语句体开始执行;② 可以使用break来结束特定case语句的处理;③ 如果没有case常量等于switch常量,default语句将被执行;④ VC没有在switch语句中没有要求case值最小是257;
复杂情况
1、在windows高级系统编程,对于系统的消息的处理,switch结构发挥了重要的作用;
2、在C语言仿面向对象的模式进行项目的开发时,switch的功能也是非常重要的;或者使用对象工厂的模式进行项目开发的时候,也是经常使用的,如:
3、switch更多的时候,还是同枚举类型一起使用,如下图和上图也说明了这一点:
4、方便他人亦是方便自己,如果觉得还行就点下下边的投票吧,这样可以帮助其他人更快的找到解决问题的方法;有疑问的也可留言哦, 谢谢!