第四讲 分支选择结构程序设计精选文档.ppt
《第四讲 分支选择结构程序设计精选文档.ppt》由会员分享,可在线阅读,更多相关《第四讲 分支选择结构程序设计精选文档.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四讲第四讲 分支选择结分支选择结构程序设计构程序设计本讲稿第一页,共四十五页2022/10/192复习复习l关系运算符关系运算符lif if 语句语句l分支结构程序设计思想分支结构程序设计思想本讲稿第二页,共四十五页2022/10/193逻辑判断逻辑判断关系运算符和关系表达式关系运算符和关系表达式 大于大于=大于等于大于等于=小小于等于于等于=等于等于!=!=不等于不等于本讲稿第三页,共四十五页2022/10/194关系判断关系判断#include#include main()main()int b,c;int b,c;/整型变量整型变量b=3;c=2;b=3;c=2;/对变量赋值对变量赋值
2、printf(printf(“3 2 3 2 是是%d%dnn”,(bc)(bc););/输出逻辑值输出逻辑值printf(printf(“3=2 3=2 是是%d%dnn”,(b=c)(b=c););printf(printf(“3=2 3=2 是是%d%dnn”,(b=c)(b=c););printf(printf(“3 2 3 2 是是%d%dnn”,(bc)(bc););printf(printf(“3!=2 3!=2 是是%d%dnn”,(b!=c)(b!=c););本讲稿第四页,共四十五页2022/10/195 if (if (表达式表达式)语句语句;其其语语义义是是:如如果果表表
3、达达式式的的值值为为真真,则则执执行行其其后后的语句,的语句,否则不执行该语句。如:否则不执行该语句。如:if(c min)if(c min)min=c;min=c;单分支单分支选择结构的一种常用形式选择结构的一种常用形式本讲稿第五页,共四十五页2022/10/196 格式:格式:if(if(条件条件)语句语句;else else 语句语句 2;2;双分支双分支选择结构的一种最常用形式选择结构的一种最常用形式工作过程图工作过程图 :条条件件本讲稿第六页,共四十五页2022/10/197本节内容本节内容l逻辑运算符逻辑运算符lif if 语句应用举例语句应用举例lswitch switch 语句
4、及应用语句及应用本讲稿第七页,共四十五页2022/10/198l鸡兔同笼鸡兔同笼已知鸡和兔的总数为已知鸡和兔的总数为n n,总腿数为,总腿数为m m。输入输入n n和和m m,依次输出鸡的数目和兔的数目,依次输出鸡的数目和兔的数目,若无解,则输出若无解,则输出Noanswer!Noanswer!逻辑运算符逻辑运算符本讲稿第八页,共四十五页2022/10/199#include#include main()main()int chick,rabbit,n,m;int chick,rabbit,n,m;scanf(“%d%d”,&n,&m);scanf(“%d%d”,&n,&m);chick=(4
5、*n-m)/2;chick=(4*n-m)/2;rabbit=n-chick;rabbit=n-chick;if if(m%2=1|a0|b0m%2=1|a0|b0)printf(“printf(“N No answer!n”)o answer!n”);else else printf(“chicks:%d;rabbits:%dn”,chick,rabbit)printf(“chicks:%d;rabbits:%dn”,chick,rabbit);必须保证必须保证chickchick和和rabbitrabbit都是非负整数都是非负整数!本讲稿第九页,共四十五页2022/10/1910分析:分析
6、:1 1、先根据输入的三边长,判断能否构成三角形,、先根据输入的三边长,判断能否构成三角形,若能,则转步骤若能,则转步骤 2 2;若不能,则转步骤;若不能,则转步骤3 3;2 2、使用海伦公式求三角形面积、使用海伦公式求三角形面积3 3、输出提示:该三角形不存在。、输出提示:该三角形不存在。输入三角形的三边长,求三角形面积。输入三角形的三边长,求三角形面积。本讲稿第十页,共四十五页2022/10/1911#include#include#include#include main()main()float a,b,c,s,area;float a,b,c,s,area;scanf(“%f%f%f
7、”,&a,&b,&c);scanf(“%f%f%f”,&a,&b,&c);printf(“a=%7.2f,b=%7.2f,c=%7.2fn”,a,b,c);printf(“a=%7.2f,b=%7.2f,c=%7.2fn”,a,b,c);s=(a+b+c)/2;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“area=%7.2fn”,area);printf(“area=%7.2fn”,area);if(a+bc)&(b+ca)&(a+cb)if(a+bc)&(b+ca)&(a+cb
8、)elseelse printf(“printf(“不能构成三角形不能构成三角形!n”);n”);本讲稿第十一页,共四十五页2022/10/1912逻辑运算符与表达式逻辑运算符与表达式l 关系表达式只能描述单一条件,例如关系表达式只能描述单一条件,例如“x=0 x=0”。l 如果需要描述如果需要描述“x=0 x=0”、同时、同时“x10 xc)if(a+bc)if(a+cb)if(a+cb)if(b+ca)if(b+ca)s=(a+b+c)/2;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);area=sqrt(s*(s-a)*(s-b)*(s-c);if
9、if的嵌套的嵌套本讲稿第十八页,共四十五页【例4-1】写一程序,从键盘上输入某年份year(4位十进制数),判断其是否闰年。闰年的条件是:年份能被4整除、但不能被100整除;或者能被400整除。分析:分析:1 1、从键盘输入任意一年份,类型为十进制整数、从键盘输入任意一年份,类型为十进制整数2 2、判断是否是闰年、判断是否是闰年3 3、给出结论:、给出结论:“是是”或或“否否”继续对第继续对第2 2步进行任务细化步进行任务细化2.12.1、判断该年份数字能否被、判断该年份数字能否被4 4整除,并且不能被整除,并且不能被100100整除若整除若能,则是闰年,程序结束,否则进入能,则是闰年,程序结
10、束,否则进入2.22.22.22.2、判断该年份数字能否被、判断该年份数字能否被400400整除,若能,是闰年,整除,若能,是闰年,程序结束,否则不是闰年,程序结束。程序结束,否则不是闰年,程序结束。本讲稿第十九页,共四十五页程序优化l 首先将首先将是否闰年的标志是否闰年的标志leapleap预置为预置为0 0(非闰年(非闰年),),这样仅当这样仅当yearyear为闰年时将为闰年时将leapleap置为置为1 1即可。即可。这种处理两种状态值的方法,对优化算法和提这种处理两种状态值的方法,对优化算法和提高程序可读性非常有效。高程序可读性非常有效。l利用逻辑运算能描述复杂条件的特点,使用逻辑运
11、利用逻辑运算能描述复杂条件的特点,使用逻辑运算降低算降低ifif语句的复杂性,使程序更简洁语句的复杂性,使程序更简洁 if(year%4=0&year%100!=0)|(year%400=0)(year%4=0&year%100!=0)|(year%400=0)else 本讲稿第二十页,共四十五页逻辑表达式的短路计算逻辑表达式的短路计算l l对于逻辑与运算,例如对于逻辑与运算,例如对于逻辑与运算,例如对于逻辑与运算,例如“a&ba&b”,若,若a a的逻辑值为的逻辑值为“假假”,则无须计算,则无须计算b b的逻辑值的逻辑值,就可得知表达式,就可得知表达式“a&ba&ba&ba&b”的逻辑值为的
12、逻辑值为的逻辑值为的逻辑值为“假假”。l l能被能被能被能被4 4 4 4整除,但是不能被整除,但是不能被整除,但是不能被整除,但是不能被100100100100整除的年份是闰年整除的年份是闰年整除的年份是闰年整除的年份是闰年l (k%4=0)&(k%100!=0)(k%4=0)&(k%100!=0)l l对于逻辑或运算,例如对于逻辑或运算,例如对于逻辑或运算,例如对于逻辑或运算,例如“a|ba|b”,若,若a a的逻辑值为的逻辑值为“真真”,则无须计算,则无须计算b b的逻辑值,的逻辑值,就可得知表达就可得知表达式式 “a|ba|ba|ba|b”的逻辑值为的逻辑值为“真真”。l因此,对于逻辑
13、表达式,可以进行短路计算,既只计因此,对于逻辑表达式,可以进行短路计算,既只计算表达式的部分项。算表达式的部分项。本讲稿第二十一页,共四十五页练习练习l设设a=3,b=4,c=5a=3,b=4,c=5,试计算以下,试计算以下表达式的值表达式的值1)1)a+bc&b=ca+bc&b=c2)2)a|b+c&b a|b+c&b c c3)3)(!(a+b)+c(!(a+b)+c 1)&(b+c/2)1)&(b+c/2)本讲稿第二十二页,共四十五页提出问题:提出问题:从键盘上输入一个百分制成绩从键盘上输入一个百分制成绩scorescore,按下列原则输出其等级:按下列原则输出其等级:score90sc
14、ore90,等级为,等级为A A;80score9080score90,等级为,等级为B B;70score8070score80,等级为,等级为C C;60score7060score70,等级为,等级为D D;score60score60,等级为,等级为E E。若使用若使用ifif语句如何编程解决?语句如何编程解决?本讲稿第二十三页,共四十五页二、switch语句 语语言言还还提提供供了了另另一一种种用用于于多多分分支支选选择择的的switchswitch语句,语句,其一般形式为:其一般形式为:switch(switch(表达式表达式)case case 常量表达式常量表达式1:1:语句语
15、句1;1;case case 常量表达式常量表达式2:2:语句语句2;2;case case 常量表达式常量表达式n:n:语句语句n;n;default:default:语句语句n+1;n+1;例例4.24.2本讲稿第二十四页,共四十五页main()main()int a;int a;printf(input integer number:);printf(input integer number:);scanf(%d,&a);scanf(%d,&a);switch(a)switch(a)case 1:printf(case 1:printf(“MondaynMondayn”););case
16、2:printf(Tuesdayn);case 2:printf(Tuesdayn);case 3:printf(Wednesdayn);case 3:printf(Wednesdayn);case 4:printf(Thursdayn);case 4:printf(Thursdayn);case 5:printf(Fridayn);case 5:printf(Fridayn);case 6:printf(Saturdayn);case 6:printf(Saturdayn);case 7:printf(Sundayn);case 7:printf(Sundayn);default:print
17、f(errorn);default:printf(errorn);本讲稿第二十五页,共四十五页lswichswich语句的语义是:语句的语义是:计计算算switchswitch后后的的括括号号内内的的表表达达式式的的值值;逐逐个个与与casecase后的常量表达式值相比较,后的常量表达式值相比较,当当表表达达式式的的值值与与某某个个casecase后后的的常常量量表表达达式式的的值值相相等等时时,即即执执行行其其后后的的语语句句,然然后后不不再再进进行行与与casecase后后常常量量表表达达式式的的比比较较,继继续续执执行行后后面面所有所有case case 常量表达式:后的语句。常量表达式
18、:后的语句。若若表表达达式式的的值值与与所所有有casecase后后的的常常量量表表达达式式均均不不相同时,则执行相同时,则执行defaultdefault后的语句。后的语句。本讲稿第二十六页,共四十五页main()main()int a;int a;printf(input integer number:);printf(input integer number:);scanf(%d,&a);scanf(%d,&a);switch(a)switch(a)case 1:printf(case 1:printf(“MondaynMondayn”);break;);break;case 2:pri
19、ntf(Tuesdayn);break;case 2:printf(Tuesdayn);break;case 3:printf(Wednesdayn);break;case 3:printf(Wednesdayn);break;case 4:printf(Thursdayn);break;case 4:printf(Thursdayn);break;case 5:printf(Fridayn);break;case 5:printf(Fridayn);break;case 6:printf(Saturdayn);break;case 6:printf(Saturdayn);break;case
20、 7:printf(Sundayn);break;case 7:printf(Sundayn);break;default:printf(errorn);default:printf(errorn);本讲稿第二十七页,共四十五页 例例4.3 4.3 从键盘上输入一个百分制成绩从键盘上输入一个百分制成绩scorescore,按下,按下列原则输出其等级:列原则输出其等级:score90score90,等级为,等级为A A;80score9080score90,等级为,等级为B B;70score8070score80,等级为,等级为C C;60score7060score70,等级为,等级为D D
21、;score60score60,等级为,等级为E E。本讲稿第二十八页,共四十五页main()main()int score,grade;int score,grade;printf(printf(“Input a score(0100):Input a score(0100):”););scanf(scanf(“%d%d”,&score);,&score);grade=score/10;grade=score/10;/将成绩整除将成绩整除1010,转化成,转化成switchswitch语句中的语句中的casecase标号标号 switch(grade)switch(grade)case 10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四讲 分支选择结构程序设计精选文档 第四 分支 选择 结构 程序设计 精选 文档
限制150内