switch使用总结

来源:互联网 发布:淘宝羊绒哈伦九分女裤 编辑:程序博客网 时间:2024/06/06 15:04

最近在重温C++Primer,我要收回我以前说它适合作为一本工具书的说法,对于一个老手,这本书的编写细致也是值得好好品尝的。

他的基本结构如下:

switch(expression){statement}

对于圆括号内表达式的值与其后列出的关键字做比较,实现switch语句的功能。表达式必须产生一个整数结果,其值与每个case的值比较。关键字case和它所关联的值称为case标号。每个case标号的值都必须是一个常量表达式。除此之外,还有一个特殊的case标号---default标号。

          这条语句中最容易被误解的是:以为程序中会执行匹配的case标号相关联的语句。实际上,程序从该点开始执行,并跨越case边界执行其他语句,直到switch结束或者遇到break语句为止。

我们先看一个例子,下面的程序代码功能是统计元间字母出现的次数,代码如下:

switch(t){case 'a':i ++;case 'e':j ++;case 'i':k ++;case 'o':g ++;case 'u':h ++;}



假如我们输入的是'u',则输出中,只有h为1,其它为1;如果输入的是'o',则g和h都为1,其它为0.所以我们在使用swithc结构的时候要注意这个表达语句的工作流程。

这个程序也让我们体会到在case里面添加break的作用,但是有的时候,我们是希望两个或者多个case值由动作序列来完成 ,比如,我想写个程序,计算包含的元音有多少个,不区分大小写,这里,我们可以按下面的方法来写。

switch(t){case 'a':case 'A':i ++;break;case 'e':case 'E':j ++;break;case 'i':case 'I':k ++;break;case 'o':case 'O':g ++;break;case 'u':case 'U':h ++;break;}}

       最后一点就是default标号,我个人觉得,我们还是要养成添加default的好习惯,因为除了我们列出来的case情况,我们还有很多情况,有时间是需要处理的,有时候不需要处理,但是如果悬空在建阳城其实是不好的。定义一个default标号也可以告诉读者,这种情况我们已经考虑到了,只是没有要执行的。

0 0
原创粉丝点击