9双分支选择结构程序设计

上传人:cl****1 文档编号:585127802 上传时间:2024-09-01 格式:PPT 页数:38 大小:809.03KB
返回 下载 相关 举报
9双分支选择结构程序设计_第1页
第1页 / 共38页
9双分支选择结构程序设计_第2页
第2页 / 共38页
9双分支选择结构程序设计_第3页
第3页 / 共38页
9双分支选择结构程序设计_第4页
第4页 / 共38页
9双分支选择结构程序设计_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《9双分支选择结构程序设计》由会员分享,可在线阅读,更多相关《9双分支选择结构程序设计(38页珍藏版)》请在金锄头文库上搜索。

1、3.1 单分支选择结构单分支选择结构if语句语句3.2 双分支选择结构双分支选择结构ifelse,以及条件运算与以及条件运算与条件表达式条件表达式3.3 多分支选择结构程序设计多分支选择结构程序设计 第三章第三章 选择结构流程及应用选择结构流程及应用 3.3 3.3 多分支选择结构程序设计多分支选择结构程序设计引子:引子: 例例如如我我们们要要解解决决这这样样一一个个问问题题:输输入入一一个个整整数数,根根据据输输入入值值,输输出出数数的的范范围围属属于大于于大于0 0、小于、小于0 0还是等于还是等于0 0。 x x的的范范围围实实际际上上是是三三种种情情况况,我我们们先先用用if else

2、if else解决这个问题:解决这个问题: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 else-if 语句的格式语句的格式例:if (salary1000) index=0.4; else if (salary800) index=0.3; else if (salary600) index=0.2; else if (salary400) index=0

3、.1; else index=0; else-if 流程流程: 功能:功能:按表达式的顺按表达式的顺序进行判断,最早值序进行判断,最早值为真的表达式将引起为真的表达式将引起执行相应语句执行相应语句i i,并且,并且不再继续判断其它条不再继续判断其它条件。若全部表达式为件。若全部表达式为假,则执行语句假,则执行语句n n。引例用引例用else-ifelse-if来实现如下来实现如下:if (x0) printf ( x0);else if (x0) printf(x0);else printf(x=0);2、else-if else-if 语句的运行规律语句的运行规律 If(表达式1)else哦

4、,否定表达式哦,否定表达式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语句中,语句中,elsee

5、lse与与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) printf(Dn);else pr

6、intf(En);v从键盘输入一个自变量x,求分段函数y=f(x)的值,f(x)的表达式如下:练习y=x+3, x50, 0=x52x+30, x0练习判断下面程序的运行结果:判断下面程序的运行结果:#includemain()intx=1,y=2,z=0,i=3;if(ix)z=1;elseif(iy)z=2;elsez=3;printf(“z=%d”,z);3、if语句的嵌套if (表达式表达式1) if (表达式表达式2) 语句语句1 else 语句语句2else if(表达式表达式3) 语句语句3 else 语句语句4内嵌if内嵌ifif (表达式表达式1) if (表达式表达式2)

7、语句语句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 printf(XYn); else printf(X=Yn);运行:Ent

8、er 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 printf(“a!=b”);实现if else 正确配对方法:加 例例

9、 考虑下面程序输出结果考虑下面程序输出结果: 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=%cn,grade); else printf(data error!n

10、);#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()chars;scanf(“%c”,&s);switch(s)cas

11、eA:printf(“85100n”);caseB:printf(“7084n”);caseC:printf(“6069n”);caseD:printf(“60n”);default:printf(“错误输入错误输入n”);输入“c”,求输出结果。 结果: 6069 60 错误输入 ?!例六:switch语句 示例main() char s; scanf(“%c”,&s); switch(s) case A :printf(“85100n”); case B :printf(“7084n”); case C :printf(“6069n”); case D :printf(“60n”); de

12、fault :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(“6069n”);break; case D :printf(“60n”);break; default :printf(“错误输

13、入n”); 这才差不多!break! 运行结果: 6069例八:例八:switch语句语句 示例示例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);说明说明说明说明1、每个case常量表达式的值必须互不相同,否则会出现互相矛盾的结果。2、允许多个case共用一个执行语句。 求程序运行结果。结果: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,year); printf(a leap year.n); main()int year,leap;if (year%4!=0) leap=0;else if (year%100!=0) leap=1;else if (year%400!=0) leap=0; else leap=1;if (leap) printf(%d is,year);else printf(%d is not,year);printf(a leap year.n);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号