【黑马程序员】【C语言】选择结构-switch语句

来源:互联网 发布:淘宝上怎么做虚拟充值 编辑:程序博客网 时间:2024/05/16 01:40


1.用法

switch(整型表达式) 
{  
    case 数值1:  
        语句1;  
        break;  
    case 数值2:  
        语句2;  
        break;  
    ... ...  
    case 数值n:  
        语句n;  
        break;  
    default :  
        语句n+1;  
        break;  
}

当整型表达式的值等于“数值1”时,就会执行“语句1”,后面的break表示退出整个switch语句,也就是直接跳到第16行代码; 

当整形表达式的值等于“数值2”时,就会执行“语句2”;后面的以此类推。如果在数值1~数值n中,没有一个值等于整型表达式的值,那么就会执行default中的语句n+1。 

由于所有的case后面都有个break,因此执行完任意一个case中的语句后,都会直接退出switch语句 

 

2.break的作用

break关键字的作用是退出整个switch语句。默认的格式中,每个case后面都有个break,因此执行完case中的语句后,就会退出switch语句。

1> 如果某个case后面没有break,意味着执行完这个case中的语句后,会按顺序执行后面所有case和default中的语句,直到遇到break为止。

 

3.代码

复制代码
 1 #include <stdio.h> 2  3 /* 4  if (条件) 5  { 6   7  } 8   9  10  switch (数值)11  {12     case 数值1:13         语句1;14         break;15  16     case 数值2:17         语句2;18         break;19  20     default :21         语句3;22         break;23  }24  */25 26 int main()27 {28     //int a = 10;29     // break:退出整个switch语句30     // 如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止31     /*32     int b = 10;33     34     switch (a)35     {36         case 10:37             printf("A\n");38             b++;39         case 5:40             printf("B\n");41             b++;42         case 0:43             printf("C\n");44             b++;45             break;46         default:47             printf("D\n");48             break;49     }50     51     printf("b的值是%d\n", b);*/52     53     char c = '+';54     int a = 10;55     int b = 20;56     // 如果要在case后面定义新的变量,必须用大括号{}包住57     switch (c) {58         case '+':59         {60             int sum = a + b;61             printf("和是%d\n", sum);62             break;63         }64             65         case '-':66         {67             int minus = a - b;68             printf("差是%d\n", minus);69             break;70         }71     }72     73     return 0;74 }
复制代码

4.练习

复制代码
 1 /* 2  输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式) 3  A:90~100 score/10 == 9、10 4  B:80~89  score/10 == 8 5  C:70~79  score/10 == 7 6  D:60~69  score/10 == 6 7  E:0~60    8  */ 9 10 #include <stdio.h>11 12 int main()13 {14     int score = 100;15     16     switch (score/10) {17         case 10: // 10018         case 9: // 90+19             printf("A\n");20             break;21         case 8: // 80+22             printf("B\n");23             break;24         case 7: // 70+25             printf("C\n");26             break;27         case 6: // 60+28             printf("D\n");29             break;30         default:31             printf("E\n");32             break;33     }34     35     36     37     /*38      if和switch39      1> if语句能完成的功能,switch并不一定能完成40      int a = 10;41      if (a>100)42      {43      44      }45      46      2> 在有些情况下,if语句和switch语句可以互换47      48      3> switch能完成的功能,if语句都能完成49      */50     51     return 0;52 }
0 0