【学习笔记】【C语言】选择结构-switch

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: // 100
18         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和switch
39      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 }

 

posted @ 2015-06-10 21:37  登山赏枫  阅读(873)  评论(0编辑  收藏  举报