C语言学习笔记(5)基础篇--> switch...case语句;break语句

时间:2024-01-31 10:35:20

格式:

  switch(expression){  

    statement-list

    }

  1. expression的结果必须是整型值
  2. 控制一条语句或多条语句,一般用大括号控制多条

  贯穿于语句列表之间的是一个或多个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语句,循环再讲吧