switch开关语句教案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本题13个分支(比1年12个月共需12个分支多1),编程 可使用的多分支结构有哪些?else…if、if…else的嵌套和 switch使用哪一个最为简捷?是switch吗?
例题2:(程序代码)
#include <stdio.h> main(){ int year, month, days; printf("输入年份:"); scanf("%d",&year); printf("输入月份:"); scanf("%d", &month); switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31; break; case 4: case 6: case 9: case 11: days=30; break; case 2: // 判断闰年 if(year%4==0 && year%100!=0 || year%400==0) days=29; else days=28; break; default: printf("月份输入错误!\n"); exit(1); break; } printf("天数:%d\n", days); }
练习2: 怎样用switch() { case }来判断学生成绩 当成绩cj>=90 输出‘A’; 当成绩90>cj>=80输出‘ B’; 成绩c>=60&&c<=79输出‘C’; 成绩c<60 输出‘D’
练习2:
int main() { float cj; char ch; scanf("%f",&cj); switch((int)cj/10) { case 0: case 1: case 2: case 3: case 4: case 5:ch='D';break; case 6: case 7:ch='C';break; case 8:ch='B';break; case 9:ch='A';break; default:printf("输入数据有误\n"); }
《C语言程序设计之——》
switch ……case 开关语句 应用
熟记语句单词
switch
case default
开关
情况 缺省 中断、 中止
break
Байду номын сангаас 演示例题1
输入数字1———7,则输出该整数所对 应的英文星期名称(如下所示),若输入其它数 字则报错. 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 7 Sunday 其他 error
语句格式(改进,添加BREAK 语句)
switch(表达式) { case 常量表达式1: { 语句块1; break; } …… case 常量表达式n: { 语句块n; break; } default: { 语句块n+1; } } 计算表达式的值
练习1:程序实现模拟计算器
#include<stdio.h> #include<stdlib.h> int main() { char ch; int a,b,result; printf("请输入加减乘除四个运算符中的一种:\n"); scanf("%c",&ch); printf("请输入两个操作数:"); scanf("%d,%d",&a,&b); switch(ch) { case'+': result=a+b;break; case'-': result=a-b;break; case'*': result=a*b;break; case'/': if(b==0)+ printf("除数不能为零! \n"); else result=a/b; break; default:exit(0); } printf("%d %c %d=%d\n",a,ch,b,result); return 0; }
break; break; break; break; break; break; break;
输入整数1、 2、3、4、5、 6、7,输出相 应星期几的英 文单词。
使用switch 开关语句 完成
SWITCH语句格式
计算表达式的值 switch(表达式) { case 常量表达式1: 语句块1; case 常量表达式2: 语句块2; …… case 常量表达式n: 语句块n; default: 语句块n+1;
printf("成绩%.2f的等级为:%c\n",cj,ch); return 0; }
小结:
关键字
• switch, breadk
语句格式
执行过程
计算表达式的值 switch (表达式) { case default case 常量表达式1: { 语句块1; break; } …… case 常量表达式n: { 语句块n; break; } default: { 语句块n+1; } }
例题2:
题目:C语言编程:求某一年的某一月有多少天问题 从键盘输入年号和月号,求这一年的这一月共有多少天。
分析:
这个问题需要考虑闰年问题,因为二月份的天数与闰年有 关。闰年的判断依据是:若某年能被4整除,但不能被100整 除,则这一年是闰年;若某年能被400整除,则这一年也是 闰年。请考虑:闰年如何表达?
流程图
}
语句功能
switch(表达式) { case 常量表达式1: 语句块1; case 常量表达式2: 语句块2; …… case 常量表达式n: 语句块n;
1、表达式的值可以是整型常量 2、表达式的值可以是字符型常量 3、表达式的值不可以是实型常量
default:
语句块n+1; }
其语义是:计算表达式的值。 并 逐个与其后的常量表达式值相比较, 当表达式的值与某个常量表达式的 值相等时, 即执行其后的语句, 然后不再进行判断,继续执行后面 所有case后的语句。如表达式的值 与所有case后的常量表达式均不相 同时,则执行default后的语句。
演示例题1(用多重分支嵌套完成) 输入整数 1 、 #include <stdio.h> 2、3、4、5、 main(){ int a; 6、7,输出相 printf("input integer number: "); 应星期几的英 scanf("%d",&a); if (a==1) printf("Monday\n"); 文单词。 else if(a==2) printf("Tuesday\n");
else if(a==3) printf("Wednesday\n"); else if(a==4) printf("Thursday\n"); else if(a==5) printf("Friday\n"); else if(a==6) printf("Saturday\n"); else if(a==7) printf("Sunday\n"); else printf("error\n"); } 使用 if___else if 嵌套 七层!!!
拓展:
1、如果程序的default没有处在switch的结尾部分,那么运行出 来会是什么结果? 2、case后的常量能否是一个浮点型常量或双精度型常量?
演示例题1
#include <stdio.h> main(){ int a; printf("input integer number: "); scanf("%d",&a); switch (a){ case 1: printf("Monday\n"); case 2: printf("Tuesday\n"); case 3: printf("Wednesday\n"); case 4: printf("Thursday\n"); case 5: printf("Friday\n"); case 6: printf("Saturday\n"); case 7: printf("Sunday\n"); default:printf("error\n"); } }