switch case

switch、case

上一期讲了ifelse语句。既然有了ifelse,为什么还要switchcase组合呢?

 

通过if else的嵌套确实能够实现switch case的功能。但有时候往往使用switch会使整个代码的流程更加简洁清晰。使用switch的基本格式为:

switch(variable)

{

case Value1:

              //code

              break;

case Value2:

              //code

              break;

case Value3:

              //code

              break;

···

default

//code:

              break;

}

      

【规则1】每个case后面记得加break

每个case的结尾记得加break , 否则将会导致多个分支重叠的情况。

不过,有时候可以有意地利用swtich的这种特性,表达出一些采用其他方法很难表达出来的程序控制结构。比如一些比较大的switch分支,我们常常会发现一些分支的处理大同小异。只要稍微改动一点点,剩下的部分就完全等同于另一个分支情况下的处理。(建议如果要这样使用,请添加注释说明自己的意图)

【规则2】最后必须使用default分支

即使程序真的不需要default处理,也应该保留如下语句:

default:

         break;

这样做并非画蛇添足,可以避免别人误以为你忘记了default处理。

【规则3】case关键字后面的值有什么要求吗?

         Value1的值为 0.1行吗?-0.1呢?(0.1+0.9)呢?‘A’呢?“A”呢?

请自己上机调试下,到底哪行,哪些不行。

         记住,case后面只能是一个固定的整型(或枚举)或者字符型常量,或者常量表达式,不能加一个范围或者不等式。

【规则4】case语句排列顺序

         似乎很少有人考虑这个问题。但是如果case涉及到的分支特别多,那就不得不考虑到这个问题了。

         建议:把正常的情况放在前面,把异常的情况放在后面,并且在中间写好注释,或者按照执行频率来排列。最常执行的代码,可能也是调试的时候单步执行最多的代码。如果放在后面,找起来可能比较困难。


本专题的主要内容选自《C语言深度解剖》陈正冲著,以及百度百科,还有优快云)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值