
第5章分支控制结构一一知识点·5.1关系运算符和关系表达式·5.2逻辑运算符和逻辑表达式5.3if语句5.4switch语句
第5章 分支控制结构-知识点 • 5.1 关系运算符和关系表达式 • 5.2 逻辑运算符和逻辑表达式 • 5.3 if语句 • 5.4 switch语句

5.4switch语包(开关分支语句)--P88>格式:switch表达式CE:语包1;case执行过程:E2: 语句2;caseswitch表达式caseEEE2default说明.:E1语En是常量表达式语句1语
5.4 switch语句(开关分支语句)-P88 ➢ 执行过程: ➢ 格式: switch ( 表达式) { case E1 : 语句 1 ; case E2 : 语句 2 ; . case En : 语句 n ; [default: 语句 ;] } switch 表达式 语句1 语句2 . 语句n 语句 E 1 E 2 En default case 说明:E1-En是常量表达式

ACM--1119C语言实验输入数字星期,输出英文(switch语包)①inta;scanf("%d",&a);ProblemDescription③switch(a)从键盘上输入数字星期,然后输4break;case 1:printf("Mondayln);美其对应关系是:1Monday?break;case2:printf("Tuesday/n");2Tuesday3Wednesday?break;case3:printf("Wednesdayln");4Thursday5Fridaybreak;case4:printf("Thursdayln");6Saturday8break;case5:printf("Fridayln");7Sunday9break;case 6:printf("Saturdayln");Inputcase7:printf("Sunday/n");从键盘输入数字星期,输入数字衣?人Output输出该数字对应的英文星期表示。ExampleInputExampleOutputTuesday
① int a; ② scanf("%d",&a); ③ switch(a) ④ { case 1: printf("Monday\n"); break; ⑤ case 2: printf("Tuesday\n"); break; ⑥ case 3: printf("Wednesday\n"); break; ⑦ case 4: printf("Thursday\n"); break; ⑧ case 5: printf("Friday\n"); break; ⑨ case 6: printf("Saturday\n"); break; ⑩ case 7: printf("Sunday\n"); ⑪ } ACM-1119

例5.8:输入一个百分制分数,输出分数的等级A、B、C、D或E---P88算法分析:10将学生的成绩存入变量sc中:2)g=sc/10;3)天若g==10或g==9,学生成绩等级为A;若g==8,学生成绩等级为B;依次类推,可以得到其它成绩的等级。若g<6,学生成绩等级为E
例5.8:输入一个百分制分数,输出分数的等级A、B、 C、D或E-P88 算法分析: 1)将学生的成绩存入变量sc中; 2)g=sc/10; 3)若 g==10或g==9,学生成绩等级为A; 若 g==8,学生成绩等级为B; .依次类推,可以得到其它成绩的等级。 若 g<6,学生成绩等级为E

#include例5.8:用switch完成百分2int main()制分数转换3int sc, g;Ⅱ输入85scanf("%d",&sc);g=sc/10;switch (g)注意执行效果!case 10:case 9: printf("Aln");case 8:printf("BIn");BCcase 7: printf("CIn");D11case 6: printf("DIn");E!e 1:12case 5: case 4: case 3:error!!13caseO:printf("E!n")14default :printf("error!!!n");16return O;}
①#include ②int main() ③{ int sc, g; ④ scanf("%d",&sc); ⑤ g=sc/10; ⑥ switch (g) ⑦ { case 10: ⑧ case 9: printf("A\n"); ⑨ case 8: printf("B\n"); ⑩ case 7: printf("C\n"); ⑪ case 6: printf("D\n"); ⑫ case 5: case 4: case 3: case 2: case 1: ⑬ case 0: printf("E!\n"); ⑭ default :printf("error!!!\n"); ⑮ } ⑯ return 0; } 注意执行效果!!! 例5.8:用switch完成百分 制分数转换。 // 输入85

#include例5.8:用switch完成百分int main()2制分数转换。---改进int sc, g;scanf("%d",&sc);Ⅱ输入85g=sc/10;注意执行效果!switch (g)case 10:break;case 9: printf("Aln");9case 8: printf("Bln"); break;-B10case 7: printf("CIn");break;11case 6: printf("Dln"); break;12case 2: case 1:case 5: case 4: case 3:13case O: printf("E!\n");break;default :printf("errorln");A15return ;17
①#include ②int main() ③{ int sc, g; ④ scanf("%d",&sc); ⑤ g=sc/10; ⑥ switch (g) ⑦ { case 10: ⑧ case 9: printf("A\n"); break; ⑨ case 8: printf("B\n"); break; ⑩ case 7: printf("C\n"); break; ⑪ case 6: printf("D\n"); break; ⑫ case 5: case 4: case 3: case 2: case 1: ⑬ case 0: printf("E!\n"); break; ⑭ default :printf("error\n"); ⑮ } ⑯ return 0; ⑰ } 例5.8:用switch完成百分 制分数转换。-改进 // 输入85 注意执行效果!!!

使用switch语句注意事项一P90(1)switch后面的』“表达式”,可以是int、char和枚举型中的一种,但不能float/double型。例:1doublea;scanf ("%lf", &a);switcha表达式类型错S
⚫ 使用switch语句注意事项—P90 (1) switch 后面的“表达式”,可以是int、char 和枚举型中的一种,但不能float/double型。 表达式类型错! 例: ① double a; ② scanf ("%lf", &a); ③ switch ( a ) ④ { ⑤ . ⑥ }

使用switch语句注意事项(2)case后面语句(组)可加(也可以不加,但一般不加()。Dswitch(i)28453case1:(b=b+1;break;/ 可加、可不加case 2:b =b-1;break;7
⚫ 使用switch语句注意事项 (2) case后面语句(组)可加{ }也可以不加{ },但 一般不加{ }。 ① switch ( i ) ② { ③ case 1: { b = b + 1; break; } // { }可加、可不加 ④ case 2: b = b - 1; break; ⑤ }

使用switch语句注意事项(3)每个case后面“常量表达式”的值,必须各不相同。M0280500int a, b = 4;scanf ("%d",&a);switch (a)case1在前面已使用case l: b = b +2: breakcase 2: b - b * 2; break;18b= b -2; break;case8
例: ① int a, b = 4; ② scanf ("%d", &a); ③ switch (a) ④ { ⑤ case 1: b = b + 2; break; ⑥ case 2: b = b * 2; break; ⑦ case 1: b = b - 2; break; ⑧ } ⚫ 使用switch语句注意事项 (3) 每个case后面“常量表达式”的值,必须 各不相同。 case 1在前面已使用

使用switch语句注意事项(4)每个case后面必须是“常量表达式”例:1int sc;case后面包含变量2scanf(%d",&sc);3switch (sc)45printf("A"); break;caseSC:67sc+ro:printf("B");break;case8
⚫ 使用switch语句注意事项 (4) 每个case后面必须是“常量表达式” 。 例: ① int sc; ② scanf ("%d", &sc); ③ switch (sc) ④ { ⑤ case sc: printf ("A"); break; ⑥ case sc+10: printf ("B"); break; ⑦ . ⑧ } case 后面包含变量