第11章 switch.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 switch

第11章 switch/case开关语句 switch/case开关语句是一种多分支选择语句,是用来实现多方向条件分支的语句。虽然从理论上讲采用条件语句也可以实现多方向条件分支,但是当分支较多时会使条件语句的嵌套层次太多,程序冗长,可读性降低。开关语句可直接处理多分支选择,使程序结构清晰,使用方便。 11.1 switch/case开关语句的组成形式 开关语句是用关键字switch构成的,它的一般形式如下: switch(表达式) { case 常量表达式1: {语句1;} break; case 常量表达式2: {语句2;} break; ┋ case 常量表达式n: {语句n;}break; default: {语句d;}break; } 开关语句的执行过程是: 1.当switch后面表达式的值与某一“case”后面的常量表达式的值相等时,就执行该“case”后面的语句,然后遇到break语句而退出switch语句。若所有“case”中常量表达式的值都没有与表达式的值相匹配,就执行default后面的d语句。 2.switch后面括号内的表达式,可以是整型或字符型表达式,也可以是枚举类型数据。 3.每一个case常量表达式的值必须不同,否则就会出现自相矛盾的现象(对同一个值,有两种或者多种解决方案提供)。 4.每个case和default的出现次序不影响执行结果,可先出现“default”再出现其它的“case”。 4.假如在case语句的最后没有加“break:”,则流程控制转移到下一个case继续执行。因此,在执行一个case分支后,使流程跳出switch结构,即终止switch语句的执行,可用一个break语句完成。 11.2 在51 MCU DEMO试验板上进行实验:输入年份year和月份month后,程序计算出该月有多少天day。 11.2.1 实现方法 S4键用作状态设定(输入年、月或显示天数的切换),S1键用作输入年份的低2位(如输入1986年的86)或输入月份,S2键用作输入年份的高2位(如输入1986年的19)。 该程序设计的关键是要判断当年是否为闰年。闰年的2月有29天,平年的2月只有28天。闰年的条件是:年份数year能被4整除,但不能被100整除;或者年份数year能被400整除。 其逻辑关系为:year%4==0year%100!=0||year%400==0 当此表达式的值为真时,year为闰年,否则为平年。 11.2.2 源程序文件 在D盘建立一个文件目录(CS11-1),然后建立CS11-1.uv2的工程项目,最后建立源程序文件(CS11-1.c)。输入下面的程序: #include REG51.H //1 #define uchar unsigned char //2 #define uint unsigned int //3 uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//4 uchar ACT[8]= {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //5 //========================6 uchar status_flag; //7 uint year; //8 uchar month; //9 uchar day; //10 uchar temp_year_l,temp_month; //11 uchar temp_year_h; //12 //-----------------------------------------13 void key_S1(void); //14 void key_S2(void); //15 void key_S4(void); //16 void delay(uint k); //17 uchar conv(uint year,uchar month); //18 //-----------------------------------------19 void main(void) //20 { uchar i; //21 uint temp1,temp2; //22 while(1) //23 { key_S4(); //24 switch(status_flag) //25 { //26 ca

文档评论(0)

sh4125733 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档