版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.1 单分支选择构造单分支选择构造if语句语句3.2 双分支选择构造双分支选择构造ifelse,以及条件运,以及条件运算与算与 条件表达式条件表达式 3.3 多分支选择构造程序设计多分支选择构造程序设计 第三章第三章 选择构造流程及运用选择构造流程及运用 3.3 3.3 多分支选择构造程序设计多分支选择构造程序设计引子:引子: 例如我们要处理这样一个问题:输入一个例如我们要处理这样一个问题:输入一个整数,根据输入值,输出数的范围属于大于整数,根据输入值,输出数的范围属于大于0、小于小于0还是等于还是等于0。 x的范围实践上是三种情况,我们先用的范围实践上是三种情况,我们先用if else处理
2、这个问题:处理这个问题:if (x=0) printf (x=0);else if (x0) printf( x0); if (表达式表达式1 ) 语句语句1;else if ( 表达式表达式2 ) 语句语句2;else if (表达式表达式3 ) 语句语句3; . else 语句语句n;1、else-if 语句的格式例:if (salary1000) index=0.4; else if (salary800) index=0.3; else if (salary600) index=0.2; else if (salary400) index=0.1; else index=0; 表达式1
3、表达式2假表达式3表达式4假语句4语句3语句2语句1语句5假真真真真假else-if 流程: 功能:按表达式的顺序进展判别,最早值为真的表达式将引起执行相应语句i,并且不再继续判别其它条件。假设全部表达式为假,那么执行语句n。引例用引例用else-ifelse-if来实现如下:来实现如下:if (x0)if (x0) printf ( x0); printf ( x0);else if (x0)else if (x0) printf(x0); printf(x0);else else printf(x=0); printf(x=0);2、else-if 语句的运转规律 If(表达式1) els
4、e哦,否认表达式哦,否认表达式1 1以后,原来还以后,原来还剩这么多条件啊!剩这么多条件啊!If(表达式2) else否认表达式否认表达式1 1和和2 2以后,原来还有以后,原来还有这么多条件啊!这么多条件啊!If(表达式3)Ifelseelse ifelseelse ifelseelse留意:vIfIf和和else else 是关键字,是固定的,不能丢掉!是关键字,是固定的,不能丢掉!v最开场的是最开场的是IfIf后面紧跟括号,然后就后面紧跟括号,然后就是是else-ifelse-if,直到最后是一个,直到最后是一个elseelse。velse-ifelse-if语句中,语句中,elseel
5、se与与ifif语句之间有空格,语句之间有空格,普通取一个。普通取一个。v每一个每一个else ifelse if后面跟的除了单条语句之外后面跟的除了单条语句之外还可以是复合语句,用花括号括起来。还可以是复合语句,用花括号括起来。【例【例1】 判别输入字符种类判别输入字符种类#include main() char c; c=getchar(); if(c=0&c=A&c=a&c=90) printf(An);else if(grade=80) printf(Bn);else if(grade=70) printf(Cn);else if(grade=60) print
6、f(Dn);else printf(En);v从键盘输入一个自变量x,求分段函数y=f(x)的值,f(x)的表达式如下:练习y=x+3, x50, 0=x52x+30, x0练习判别下面程序的运转结果:判别下面程序的运转结果: #includemain() int x=1,y=2,z=0,i=3; if (ix) z=1; else if(iy) z=2; else z=3; printf(“z=%d,z);3、if语句的嵌套if (表达式表达式1) if (表达式表达式2) 语句语句1 else 语句语句2else if(表达式表达式3) 语句语句3 else 语句语句4内嵌if内嵌ifif
7、 (表达式表达式1) if (表达式表达式2) 语句语句1 else 语句语句2内嵌内嵌 ifif (表达式表达式1) if (表达式表达式2) 语句语句1 else 语句语句3 内嵌ifif (表达式表达式1) 语句语句1else if(表达式表达式3) 语句语句3 else 语句语句4内嵌if【例【例3 3】输入两数并判别其大小关系】输入两数并判别其大小关系#include main() int x,y; printf(Enter integer x,y:); scanf(%d,%d,&x,&y); if(x!=y) if(xy) printf(XYn); else pri
8、ntf(XYn); else printf(X=Yn);运转:Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Yif()if()if()else.else.else.if else 配对原那么:缺省缺省 时,时,elseelse总是和它上面离它最近的未配对的总是和它上面离它最近的未配对的ifif配对。配对。例: if (a= =b) if(b= =c) printf(“a= =b= =c); else printf(“a!=b);修正: if (a= =b) if(b= =c) printf(“a= =b= =c); else prin
9、tf(“a!=b);实现if else 正确配对方法:加 例例 思索下面程序输出结果思索下面程序输出结果: main() int x=100,a=10,b=20; int v1=5,v2=0; if(a=0&score=100) s=score/10; switch (s) case 0: case 1:case 2:case 3:case 4: case 5: grade=2;break; case 6:case 7: grade=3;break; case 8: grade=4;break; case 9:case 10: grade=5;break; printf(grade=%
10、cn,grade); else printf(data error!n);#include main() int c; printf(Enter m or n or h or other:); c=getchar(); switch(c) case m: printf(nGood morning!n);break; case n: printf(nGood night!n); break; case h: printf(nHello!n); break; default : printf(n?n); break; 例例4根据输入字母输出字符串根据输入字母输出字符串例五:switch语句main
11、() char s; scanf(“%c,&s); switch(s) case A : printf(“85100n); case B : printf(“7084n); case C : printf(“6069n); case D : printf(“60n); default : printf(“错误输入错误输入n); 输入“c,求输出结果。 结果: 6069 60 错误输入 ?!例六:switch语句 例如main() char s; scanf(“%c,&s); switch(s) case A : printf(“85100n); case B : printf(
12、“7084n); case C : printf(“6069n); case D : printf(“60n); default : printf(“错误输入n); 我的成果应该是6069!什么!“60? “错误输入?怎样会这样?!不好意思,我属于C级! 运转结果: 6069 60 错误输入 例七:switch语句 例如处理方法break语句:main() char s; scanf(“%c,&s); switch(s) case A : printf(“85100n);break; case B : printf(“7084n);break; case C : printf(“606
13、9n);break; case D : printf(“60n);break; default : printf(“错误输入n); 这才差不多!break! 运转结果: 6069例八:例八:switchswitch语句语句 例如例如main() int x=1,y=0,a=0,b=0; switch(x) case 1 : switch(y) case 0 : a+;break; case 1 : b+;break; case 2 : a+;b+;break; case 3 : a+;b+; printf(“a=%d,b=%dn,a,b);求程序运转结果。结果:a=2,b=1。假设x=2? 结
14、果:a=1,b=1 假设x=3?结果:a=1,b=1 练习 练一练 将星期一、星期二.星期六、星期日依次编号为1,2,3.6,7,编写一程序从键盘输入星期的序号,那么输出其对应的英文。比如,输入6,那么输出“Saturday。附录求解闰年的程序求解闰年的程序: : main() int year,leap; scanf(“%d,&year); if (year%4=0) if (year%100=0) if (year%400=0) leap=1; else leap=0; else leap=1; else leap=0; if (leap) printf(%d is,year); else printf(%d is not,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大学第四学年(供应链金融)供应链风险控制测试题及答案
- 山东省潍坊市昌邑市2026年9校联考初三语文试题含解析
- 重庆梁平县联考2026届中考考前适应性测试数学试题含解析
- 四川省平昌县2026年初三5月摸底联考英语试题含解析
- 陕西省先电子科技中学2026年初三第三次模拟物理试题试卷含解析
- 2026年基于传感器网络的监测系统优化
- Ja基础及开发教程 3
- 落实企业家座谈会精神
- 脑卒中后遗症的康复护理流程
- 孕产妇产后护理措施培训方案
- 2025年特种设备无损检测人员资格考试(射线检测RT)历年参考题库含答案详解(5套)
- 2025年南浔银行招聘考试题库
- DB32∕T 4304-2022 高速公路经营管理安全生产隐患排查治理规程
- 2025年重庆市初中学业水平考试中考(会考)生物试卷(真题+答案)
- 项目施工奖惩管理办法
- 隧道爆破安全培训课件
- 喝酒划拳活动方案
- 日语数字考试题目及答案
- CJ/T 83-2016水处理用斜管
- T/CI 467-2024复合集流体(铜箔)
- 《赤壁之战》课本剧剧本:感受三国英雄的壮志豪情
评论
0/150
提交评论