引入 switch 语句
上一篇介绍了 if 语句只有两个分支可供选择,而实际问题往往有更多种可能性,虽然 if 语句
可以嵌套使用
,但整个代码会变得冗长难懂
,后期维护成本和修改成本都很高,所以 C 语言提供 swich 语句直接处理多分支选项。
从例题入手了解 switch 语句
我们设计一个程序,当我们输入 A~E 的成绩等级后,返回该等级对应的分数,我们当然可以使用if 语句来写,如果是 A 等级还好,如果是 E 等级,我们需要判断很多次才能知道,如果使用 switch,我们就可以对指定的条件返回指定的内容,哪怕分支再多也可以轻松应对。
1 |
|
程序分析:
我们先声明了一个 char 类型的变量 result 来存放输入的成绩等级,然后我们使用了 switch 语句
将输入的不同等级对应到不同的 printf 输出语句
上,如果输入的不是成绩等级的错误信息,switch 提供了一个 default 分支,用于显示没有对应 case 的情况。
switch 语句定义
switch 语句的作用是根据表达式的值,使流程跳转到不同的语句上去执行。
一般形式
switch(表达式){
case 常量1 : 语句1; break;
case 常量2 : 语句2; break;
…
case 常量n : 语句n; break;
default: 语句n+1;
}
使用说明
1.switch 后面跟的表达式,其值类型必须为整数类型,包含字符型(因为 C 语言中字符被转换成了整数形式)。这里的表达式就是我们下面 case 要对比的内容。
1 | int a; |
2.switch 的花括号内,由 case 开头,最多一个 default 结尾,default 可以省略,如果 default 省略后,表达式没有与 case 匹配的量,则不执行任何语句。
1 | int a; |
3.case 的出现顺序不影响执行结果,可以先写 default 然后再写 case 也行。
1 | int a; |
4.每一个 case 的值都不行相同,否则就会出现互相矛盾的情况。
1 | int a; |
5.一般情况下,一个 case 子句后,应当用 break 语句使流程跳出 switch 结构,即终结 switch 语句执行,当然,可以不输入,但会连续执行其下方 case 的语句。
1 | int a; |
6.多个 case 标号可以使用一组执行语句。
1 |
|
尾巴
这是我的个人学习笔记,主要是应付考研复习使用,充斥着一些吐槽和个人观点,并不严谨,欢迎大家参考、指正。