
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 }