- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 用友U8V15.0安装方法(WIN10X64_20H2)SQL2016SP2版.doc VIP
- 电子招标投标办法-电子招标投标办法.ppt VIP
- 调心球面滚子轴承径向游隙的测量.pdf VIP
- 黑布林阅读初三9《丢失的白象》中文版.pdf
- 西南交通大学824机械原理2023年考研真题及答案.docx VIP
- 高中数学新教材同步必修第二册 第9章课件-统计.ppt VIP
- 运动心理学第三章 运动活动的记忆过程.ppt VIP
- 《品牌设计》课件——IP形象设计案例.ppt VIP
- Q12SYBHZ2014-2019油井水泥用减阻剂磺化醛酮BZGF-1.pdf VIP
- 托人办事花钱协议书5篇.docx VIP
文档评论(0)