格式:
switch(expression){
statement-list
}
- expression的结果必须是整型值
- 控制一条语句或多条语句,一般用大括号控制多条
贯穿于语句列表之间的是一个或多个case标签
case constant-expression
//每个case标签必须具有一个唯一的值
eg1:
//从正确的地方开始,连带向下继续执行,这里switch(a)中a在上面定义的的值为1,当switch(a)为1时,找下面的case语句,从上往下找符合case 1的语句,然后做case 1:b++;从这里连带向下继续执行,下面case 2:a++;也执行,结果为 2 3
switch(表达式,变量,常量) {
case n:语句;
case n:语句;
case n:语句;
default : 语句; }
//表达式变量,常量会得到一个值,与case后面n的值进行比较,找到符合n的值,执行后面的语句,连带向下继续执行,直到大括号结束,若没有符合的n值,执行default后面的语句。default可有可无,case后面的n必须是整型常量或字符常量。还有一点需要注意的,出题的时候有时候会打乱顺序,default的位置在case上面,不用管,向下执行
eg2:
//这里switch(a++)的值为表达式的值,a这里为0,程序往下执行,case语句了没有0,看到下面有default语句,a在执行default语句前值做了一次自增,此时a为1,然后执行default语句,a再次自增,a的值为2,输出a+b的值为 3
调试代码
上面如果你理解不懂,可以用编译器带的调试功能一步步看过程
1、设断点
最左侧的红色圆点,鼠标左键点一下就可以(我在windows下用的VS2017,不多解释,VS在这里学习很强大,占用空间大。轻巧一点的可以选择gcc,VC,Dev-c++等。这里的while(1)是让程序停住,在vs里运行时控制台会一闪而过,可以使用死循环while(1); getchar(); system("pause")等停下)
2、加输出语句测试
程序走到哪里了显而易见,当然,用完记得注释或删除
注意
switch语句,执行流将贯穿整个case标签,而不是停留在单个case标签
break语句
跳出当前的switch结构,不执行连带向下。在执行一个case分支后,如果想使流程跳出switch结构,即终止switch语句的执行,可以在相应的语句后加break实现。根据实际情况选择用不用break
看题就行了,不难。
eg3:
编程题:判断成绩,考试成绩满分为100分,90~100等级为‘A’,80~89为‘B’,70~79为‘C’,60~69为‘D’,60以下为‘E’。
//这里可以利用\'/\'的规则,只取高位上的数字就能判断出处于哪个成绩段,把三位数的100,强制等于90,取最高位9,或者再加一条case 10的语句。最后的default语句不用加break了。
case嵌套
有趣吗...,当你学了C语言再去学别的语言,天呐,它们怎么这么简单 还有一个好玩的 goto语句,循环再讲吧