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 "); 38 b++; 39 case 5: 40 printf("B "); 41 b++; 42 case 0: 43 printf("C "); 44 b++; 45 break; 46 default: 47 printf("D "); 48 break; 49 } 50 51 printf("b的值是%d ", 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 ", sum); 62 break; 63 } 64 65 case '-': 66 { 67 int minus = a - b; 68 printf("差是%d ", 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 "); 20 break; 21 case 8: // 80+ 22 printf("B "); 23 break; 24 case 7: // 70+ 25 printf("C "); 26 break; 27 case 6: // 60+ 28 printf("D "); 29 break; 30 default: 31 printf("E "); 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 }