switch分支语句
switch分支语句主要用于多分支条件选择程序,其功能非常类似于else if的多分支条件语句。switch语句涉及到的关键字包括:switch、case、break和default,因此其语法规则比if语句稍微复杂一些。
图4-3 switch多分支语句的执行流程
标准的 switch分支语句
如图4-3所示,每个case管辖的分支语句是到break为止,一旦碰到break关键字程序就立即跳出整个的switch语句。它的主要作用是阻止程序进入下一个case分支,因此所有的switch语句最后一个分支都可以不写break关键字。因此,在任何一个switch语句中,最后一个分支的break关键字都是多余的。
[例4-6]测试switch语句四种关键字的功能 #include <stdio.h> int main() { puts("请输入你的学分:(A-D)"); char c = getchar(); switch(c) { case 'A': puts("你的成绩优秀!"); break; case 'B': puts("你的成绩良好!"); break; case 'C': puts("你的成绩中等!"); break; case 'D': puts("你的成绩较差!"); break; default: puts("你输入的是无效的学分!"); break; //这个break是多余的。 } return 0; } |
将以上代码输入到C语言编译器中进行编译、运行并查看打印结果:
a)输入A-D四种大写字母之一观察打印的文字说明,输入一个小写字母或其他的字符再观察打印的文字;
b)最好能在调试模式下单步执行,观察输入不同的字符之后程序进入各个分支语句的执行情况;
switch与if语句的对比
default关键字是switch语句中唯一的一个无限集合,它的功能相当于多分支的if语句中的最后一个else分支的作用。它的意思是,当以上所有条件的都不符合的情况下就进入default分支。
下面我们先对例4-6使用多分支的if语句进行替换,观察使用if语句替换后运行的结果与switch语句实现的效果是否完全一致。
|