深入理解switch语句
我们之前了解到,if语句执行的三个重要过程:
- 计算表达式逻辑结果
- if判定
- 分支执行
也可以这么说,判定语句的结构 = 判定+分支。
那么对于switch语句来说呢?
很显然,break负责的是分支的功能,case 负责判定。
单独的switch是没有判定能力的。
这里基础语法我们就不再解释了
我们主要介绍一下switch关键的注意事项。
switch你最该注意到的细节
default分支
-
关于default,我们有些人常常会忽略它,或者是当还剩下一种case的情况下,不去写case了,而直接用deault执行语句。
比如我case周一到周六,剩下周天直接用default输出。这样是不可取的,这样代码看起来就很乱。当然这不是什么原则问题。
或者有的人会直接省略default,这也是不推荐的。
因为当我们输入非case值的时候,我们程序应该给用户返回一个结果,比如提示用户输入违法之类的字样。这样的操作都是很规范的。即使程序不需要default处理。 -
default分支可以放在switch内的任何位置,不过我们一般都放在最后,处理一些异常情况。
-
我认为很重要的一点 :case中的语句不可以定义变量。
如果非要在case和break之间定义变量,我们需要给case和break之间带上花括号。
虽然带上花括号可以解决问题,但我们依旧不建议这样做。
如果我们在case和break中间,有稍微复杂一点点的代码,我们最好用函数封装一下。
-
如果我们想要多个case对应一条语句,那我们把case叠起来就好了。不建议把每条case里的语句都进行修改,这样成本很大,把他们删除就好了。
-
我们在switchcase中不建议用return进行返回,这样看起来很不规范。我们如何控制程序的结束呢?
我们再给一个循环变量,赋上初值,当其不满足条件自动退出循环。
-
不建议用bool 进行判定,否则只会打印一种情况,其他的case都不会满足条件。
图中这样的情况,当输入1时会执行case1中的内容,而输入其他比如2、3都是走了default分支。 -
我们要把最常用的case情况放在最前面,这样有利于程序员调试代码。比如 case1,2,3,4。其中4最常用,我们可以不选择按顺序,而是按使用牝鹿,把4放在最前面。
-
宏替换是一种真常量,可以直接用在case中,这是完全没有问题的。
总结:
这里的内容很简单,但是还是有一定的细节问题的,使用时候要多注意注意。