
程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501
程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501

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

5.4 switch语句(开关分支语句)-P88 >格式: switch(表达式) case E1:语句1; >执行过程: case E2:语句2; switch 表达式 case E2 En default 语句1 语自 锐明·E1语n是常量表达式
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-1119 C语言实验 输入数字星期,输出英文(switch语句) ①inta; ②scanf("%d",&ai Problem Description ③switch(a) 从键盘上输入数字星明,然后输 其对应关系是: case 1:printf("MondayIn"); break; 1 Monday 2 Tuesday ⑤ case 2:printf("TuesdayIn"); break; 3 Wednesday ⑥ 4 Thursday case 3:printf("WednesdayIn");break; 5 Friday ⑦ case 4:printf("ThursdayIn"); break; 6 Saturday 7 Sunday ⑧ case 5:printf("FridayIn"); break; Input ⑨ case 6:printf("SaturdayIn"); break; 从键盘输入数字星明,输入数字 ⑩ case 7:printf("Sunday\n"); Output ① 输出该数字对应的英文星明表示。 Example Input 2 Example Output Tuesday
① 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 算法分析: 1)将学生的成绩存入变量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完成百分 ②int main0 制分数转换。 ③int sc,g; ④ scanf("%d",&sc); 1输入85 ⑤ g=sc/10; ⑥ switch(g) 注意执行效果!!! ⑦ case 10: ⑧ case9:printf("Aln")月 ⑨ case 8:printf("BIn"); ⑩ case 7:printf("CIn"); ① case 6:printf("DIn"); D ② case 5:case 4:case 3: E e1: ③ case 0:printf("E!In"); erro??? ④ default printf("error!!!In"); ⑤ 16 return 0;
①#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 main0 ③int sc,g; 制分数转换。-改进 ④ scanf("%d",&sc); 1输入85 ⑤ g=sc/10; ⑥ switch(g) 注意执行效果!!! ⑦ f case 10: ⑧ case 9:printf("Aln");break; ⑨ case 8:printf("BIn");break;- ⑩ case 7:printf("CIn");break; ① case 6:printf("DIn");break; ② case 5:case 4:case 3:case 2: case 1: ⑧ case 0:printf("EIIn");break; ④ default printf("error\n"); ⑤ 16 return 0;
①#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?型。 例: ①double a; ② scanf ("%lf",&a); ③ switch(®) ④ { ⑤ 人表达式类型错 ⑥
⚫ 使用switch语句注意事项—P90 (1) switch 后面的“表达式”,可以是int、char 和枚举型中的一种,但不能float/double型。 表达式类型错! 例: ① double a; ② scanf ("%lf", &a); ③ switch ( a ) ④ { ⑤ . ⑥ }

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

●使用switch语句注意事项 (3)每个case后面“常量表达式”的值,必须 各不相同。 例: ①inta,b=4; ②scanf("%d",&a) switch (a) case1在前面已使用 ④ { ⑤ case 1:b=b+2;break case 2:b-b 2;break; ⑦ case ⑧ h-2:break;
例: ① 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在前面已使用