流程控制汇编课件.ppt
《流程控制汇编课件.ppt》由会员分享,可在线阅读,更多相关《流程控制汇编课件.ppt(80页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1第三章 流程控制顺序结构顺序结构 选择结构选择结构 循环结构循环结构其它控制语句其它控制语句 应用举例应用举例 纫吵棚烫疥暇勘贸书散沾饥科年屋酒攒茨邮拴朗阐策协浓暮差唐抚协槛蒜03 流程控制03 流程控制2语句序列语句序列1 1语句序列语句序列2 2语句序列语句序列 1 1条件?条件?成立成立不成立不成立语句序列语句序列 2 2语句序列语句序列不成立不成立成立成立条件?条件?顺序结构顺序结构 选择结构选择结构 循环结构循环结构流程结构由这三种基本结构经过反复嵌套构成的由这三种基本结构经过反复嵌套构成的程序称为结构化程序程序称为结构化程序僚犁搏挤吃窍盗珍婆贯胆建凿俄烧舷蚊培骇成魏费付后穿气恕屏
2、部牙盅妊03 流程控制03 流程控制3顺序结构顺序结构顺序结构:顺序结构:按照语句出现的先后顺序依次执行。按照语句出现的先后顺序依次执行。例例1:编写程序:要求输入编写程序:要求输入直角直角三角形的三角形的斜斜边边和一条和一条直角边直角边,求三角形另外一条,求三角形另外一条直角直角边,周长和面积边,周长和面积。#include#includeusing namespace std;为烷泻孪检振禹亦禄擞醉戌胁腮规酶枢同梦柴骚润炽路掳疫效碰积周室褐03 流程控制03 流程控制4void main()double a,b,c;double l,s;coutca;b=sqrt(c*c-a*a);l=a
3、+b+c;s=a*b/2;cout另一直角另一直角边边=bendl;cout周周长长=lendl;cout面面积积=sendl;监返叉伏割憎郭拴湍莽翼霖碉研纳釜肖牌姆躲尊窿顿柿俭雍背绦官卜脏码03 流程控制03 流程控制5选择结构选择结构根据根据条件的值条件的值来判断程序的流向。来判断程序的流向。if语句,实现语句,实现n分支,要求分支,要求n个表达式个表达式;switch语句,实现多分支;用语句,实现多分支;用1个表达式个表达式1.if语句的三种形式语句的三种形式if(表达式)表达式)语句语句 if(表达式)表达式)语句语句1else 语句语句2不能单独存在不能单独存在软闯亢葡搁滁可猎断份砒
4、操饯恩而芯凛玖猛栅黄埠村淀兑踩庙衡我衣崔胶03 流程控制03 流程控制6表达式表达式1 1假假真真表达式表达式2 2表达式表达式3 3表达式表达式4 4语句语句5 5语句语句4 4语句语句3 3语句语句2 2语句语句1 1真真真真真真假假假假假假if(表达式表达式1)语句语句1 else if(表达式表达式2)语句语句2 else if(表达式表达式3)语句语句3else if(表达式表达式m)语句语句m else 语句语句 m+1 if语句的三种形式语句的三种形式珠佩波测暖江谊泌粤洼遗眼苦曲蓉暂察剂菲惟履揖卢邀备灵葬雷睁侥毛锄03 流程控制03 流程控制7表达式表达式语句语句假假(0)真真(
5、非非0)第一种形式的条件语句第一种形式的条件语句 if(表达式表达式)语句语句 说明:说明:ifif后面的表达式类型任意后面的表达式类型任意语句可以是语句可以是一句或复合语句一句或复合语句。if(x)语句语句if(x!=0)if(!x)if(xy)t=x;x=y;y=t;coutxy;if(x=0)广拨铆佬沁肺难逗衍月弹团夸阑裁嚷击宠碴闽样犯螟采艇篷峰些诌疏彤恋03 流程控制03 流程控制8#include using namespace std;void main()int x,y,t;cout输输入入 x yxy;if(xy)t=x;x=y;y=t;/x与与y交交换换 coutxyy)ma
6、x=x;min=y;else max=y;min=x;复合语句复合语句 篓戌讫辱处泪赊鸵杉印啄椅宁确熟谨文斩赶岛宽腑瑟为增枉瘫璃估怪久辰03 流程控制03 流程控制11第三种形式的条件语句第三种形式的条件语句if(表达式表达式)语句语句1else if 语句2例例:计算分数计算分数markmark属于属于优良中及格不及格。优良中及格不及格。表达式表达式1 1假假真真表达式表达式2 2表达式表达式3 3表达式表达式4 4语句语句5 5语句语句4 4语句语句3 3语句语句2 2语句语句1 1真真真真真真假假假假假假else if 语句3else 语句4滔展绦集蒂杀蜂仪剐奸踩缸煮罪褐印亡拉缎壳秦为鸥
7、友蔑津本菇宦碱纳幼03 流程控制03 流程控制if(mark=90)cout 优优;else if(80=mark&mark 90)cout 良良;else if(70=mark&mark 80)cout 中中;else if(60=mark&mark 70)cout 及格及格;elsecout=90)cout 优优;else if(80=mark)cout 良良;else if(70=mark)cout 中中;else if(60=mark)cout 及格及格;else cout=60)cout=70)cout=80)cout=90)cout 优优;else cout 不及格不及格;程序执行
8、一个分支后,其余分支不再执行。程序执行一个分支后,其余分支不再执行。else ifelse if不能写成不能写成elseifelseif。当当多多分分支支中中有有多多个个表表达达式式同同时时满满足足,只只执执行行第一个与之匹配的语句。第一个与之匹配的语句。疼梁间瑰傣锻色扁姿狼梗秩双异分影顺况汹歌琴苇佃拾假肖拔洁剩浅疑庞03 流程控制03 流程控制13例例:编程实现分段函数编程实现分段函数#includeusing namespace std;void main()double x,y;coutx;if(x0)y=x+1;coutx=x,y=x+1=yendl;复合语句复合语句啊纤汰优恨雄伙祸玲
9、秘万洞雁宏阿影驳喘壮敛躺温输李歪伪争袭抑娶营扛03 流程控制03 流程控制14else if(x1)/0 x 1y=1;coutx=x,y=yendl;else/1 x y=x*x*x;coutx=x,y=x*x*x=yyz。if(xy)t=x;x=y;y=t;if(yz)t=y;y=z;z=t;if(xy)t=x;x=y;y=t;x x与与y y互换互换z z与与y y互换互换复合语句复合语句为什么要引入中间变量为什么要引入中间变量t?式逸指翁掘升条眉鸿茎乾蹬蔽厨来裙玫殖据荧岳焊要另祥堪映皆锻峭讹帛03 流程控制03 流程控制17例:考虑下面程序输出结果例:考虑下面程序输出结果:void m
10、ain()int x=100,a=10,b=20;int v1=5,v2=0;if(ab)if(b!=15)if(!v1)x=1;else if(v2)x=10;x=-1;coutx;结果:-1该语句不属于选择结构中的语句该语句不属于选择结构中的语句耗梦战咱痈蹈音霹被递惺拷由濒逼支滑资鳃油验卉暴撕辙馏巳巾装刃海俏03 流程控制03 流程控制18例:求一元二次方程例:求一元二次方程ax2+bx+c=0的根,其的根,其中系数中系数a,b,c为实数,由键盘输入。为实数,由键盘输入。#include#include using namespace std;void main()double a,b,c
11、,delta,p,q;cout a b c;delta=b*b-4*a*c;p=-b/(2*a);q=sqrt(fabs(delta)/(2*a);花宙缨吉苦膝剁宏顽峙吱狂媳滤侥疙缝近代框娇芒杉史灶窝吵拇双咒球微03 流程控制03 流程控制19 if (delta=0)cout x1=p+q endl x2=p-q endl;elsecout x1=p +j q;cout endl x2=p -j q endl;思考:思考:(1)a=0?(2)a0,b=0?(3)a0,b0?曼颐兰赎鲸陛悄瓜亩叛柔威画弧总何铺呸良眼饵叠厄染犹该椒筷柜不稗香03 流程控制03 流程控制20switch语句语句sw
12、itch(表达式表达式)case 常量常量表达式表达式1:语句组语句组1;case 常量表达式常量表达式2:语句组语句组2;case 常量表达式常量表达式n:语句组语句组n;default:语句组语句组n+1;break;break;break;必须为必须为整型整型或或字符型字符型姓抄阎捕厉据喷焉柠匆脉犊茶磷冈刃肥焚贤镁傈智予何拜违殴辊犁厂低榜03 流程控制03 流程控制21说明:说明:10 常量表达式的常量表达式的值值必须必须互不相等互不相等。20语句组语句组i可以含有多个语句。可以含有多个语句。30 语句中含有语句中含有break语句时,执行完后退出语句时,执行完后退出switch语句。语
13、句。40若某组语句不含若某组语句不含break语句,则本组语句执语句,则本组语句执行完毕后将继续执行下一组语句。行完毕后将继续执行下一组语句。捡漏品嗓渺次宙陆涅谱现左坊筏廊儿蜘储集躁板其佃者婚拼陨虫右蛹辟搔03 流程控制03 流程控制2250若没有常量值与表达式值相等,执行若没有常量值与表达式值相等,执行default语语句句n+1,若无该语句若无该语句,退出退出switch语句。语句。60可以多个可以多个case共用一组语句。共用一组语句。80用用switch语句实现的多分支结构程序,可用语句实现的多分支结构程序,可用if语句或语句或if语句的嵌套来实现。语句的嵌套来实现。70switch语
14、句允许嵌套。语句允许嵌套。杀鸟缮奥瓣痞案鲜窖蛙饮庇懊店很推承滁供瘪纬番遥蛙退忠尧粪谍压级称03 流程控制03 流程控制23例例:用用switch结构求分段函数结构求分段函数 2a+1(1=a2)b=a2-3 (2=a=1&a=2&a4:.default:b=a;关系表关系表达式达式思考:思考:若省去若省去break语句,情况会怎样?语句,情况会怎样?break;break;脖窒俄阜皿疫削数尚表食脓记迅龟朴搓册哺瞒逛饼笛拥简伸坊恬甚惰做走03 流程控制03 流程控制24例:从键盘上输入学生的分数,要求当学生的例:从键盘上输入学生的分数,要求当学生的分数分数 90100very good!8090
15、 good 6080 pass 050 Fail祭啤引张爆弃对侦袍漳电斤泊帛测栈塘薯煮纠崭桅涕台置孤壁浦揍蛰臻剂03 流程控制03 流程控制25#includeusing namespace std;void main()int score;cinscore;switch(score/10)case 10:case 9:coutVery good!n;case 8:coutGood!n;case 7:case 6:coutPass!n;case 5:coutFail!n;default:coutinput error;break;break;break;break;坊鬼荧演贺刘缀醇柠枫伦邯烯逊
16、珍腊杖疑捧否抛呈哆氢绒蝶琴屹杯膘毁逃03 流程控制03 流程控制26例:执行下列程序段后,输出结果为:例:执行下列程序段后,输出结果为:int a=1,b=0;switch(a)case 1:switch(b);case 0:cout“*0*”;break;case 1:cout“*1*”;break;case 2:cout“*2*”;break;*0*2*坊种泪乌峡肤庙宅沫苫鞘瓶坪榔遗气艺刽刷击佑泛例创扶化稚昼誊爱宦团03 流程控制03 流程控制27#includeusing namespace std;void main()int x=1,y=0,a=0,b=0;switch(x)case
17、 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;coutab;a=2,b=1胃镑匹料忆骏杭灾党跟橙质刃鼎篆梢响陌执莎秒挤摈萌退专蛾焕恢姬用匿03 流程控制03 流程控制28循环结构循环结构 while表达式表达式语句语句假假(0)(0)真真(非非0)0)do-whilewhile(表达式表达式)语句语句do语句语句while(表达式表达式);forfor(表达式表达式1;表达式表达式2;表达式表达式3)语句语句丑禾捂蛆匹媒翠泪扮皆翟尽牟悠又猾回动剩漱姚弄件缸盾箔丙怯母兆页昌03 流程控制03
18、 流程控制29WhileWhile语句语句while (表达式表达式)语句语句;可以是复合语句,其可以是复合语句,其中常含有中常含有改变条件改变条件表表达式值的语句达式值的语句执行过程:执行过程:先计算表达式的值,当表达式的先计算表达式的值,当表达式的值为非值为非 0 0 时执行语句;时执行语句;为为 0 0 时执行循环的后继(退出循环)时执行循环的后继(退出循环)厦耙乒褒忱栓肮搜纸构漠忱佰扇厂缔霸靳邹棒权扁盒姆粕日蛛萝贿涅荣英03 流程控制03 流程控制30说明:循环体可为任意类型语句循环体可为任意类型语句下列情况,退出下列情况,退出whilewhile循环循环条件表达式不成立(为零)条件表
19、达式不成立(为零)循环体内循环体内break,return,goto表达式始终为真表达式始终为真:while(1):while(1)袱惩甄藕宦噬茨残雌肄轮舜测示锭骸发枚坤检永嘿丹啮洽训透栖津蓝车创03 流程控制03 流程控制31例例1:程序的功能?:程序的功能?#includeusing namespace std;void main()int n,sum=0;n=1;while(n=100)sum=sum+n;n+;coutsum);条件表达式条件表达式复合语句复合语句例例1:求:求 n 的值。的值。侈憨羽厂厂维哗菠剁摊功壶埋釉扫提功南鲜辫砧掂檬焦新擦您证靠桑忠立03 流程控制03 流程控制
20、32#includeusing namespace std;void main()int n,sum=0;while(n=100)sum=sum+n;n+;coutsum;例例1:求:求 n 的值。的值。n=1;问题:问题:1.语句语句 n=1;能放在循;能放在循 环体内吗?环体内吗?2.若语句若语句 n=100 中的等号去掉?中的等号去掉?3.如要求如要求 1到到 100 的累乘的累乘 应怎样修改应怎样修改程序?程序?sum=1;sum=sum*n;循环体内的语句循环体内的语句受循环受循环的控制;在循环体外的语句的控制;在循环体外的语句不受循环的控制。不受循环的控制。晶佣侵烘帖肝肇粒嫩秃懊坊
21、澄刺小锨将既奴朔纯捎臀挫淤牧席座于旦蚂糟03 流程控制03 流程控制33程序拓展程序拓展1+1/2+1/3+1/100的值。的值。#includeusing namespace std;void main()int n=1;int sum=0;while(n=100)n+;coutsum;sum=sum+1/n;float sum=0;sum=sum+1.0/n;鹅俄孩虑招封洼刨拷谴氖劝纯霹肿渭励绝郊篷氮阑谆焊灿贪逛稿俘塌靡谅03 流程控制03 流程控制34do 语句语句;while(表达式表达式);可以是复合语句,其中可以是复合语句,其中常含有常含有改变条件表达式改变条件表达式值的语句值的语
22、句执行过程:执行过程:先执行语句,后判断条件。先执行语句,后判断条件。表达式的值为非表达式的值为非0 0时,继续执行语句;时,继续执行语句;表达式的值为表达式的值为0 0时,执行循环的后继。时,执行循环的后继。腕混黑憨武称崩奉不由屹册洼吐茸举圣篇疤咨很啃呻损向哟省矛汹曹吟贸03 流程控制03 流程控制35例:例:i=11,sun=0;do sun+=i;i+;while(i11);例:例:i=11,sun=0;while(i11)sun+=i;i+;酵威熄匈既斗刚兵挣奇睡辙剖慌苛橇党栋测层奔远迅苑骗他剧牟浓晾仙跟03 流程控制03 流程控制36while与与do-while的比较:的比较:do
23、-while和和while可相互转化。可相互转化。当当while后面的表达式的第一次的值后面的表达式的第一次的值为为“真真”时,两种循环的结果相同。时,两种循环的结果相同。否则,二者结果不相同否则,二者结果不相同(指二者具有(指二者具有相同的循环体的情况相同的循环体的情况)。杨尝吏痈佯伺逛薪纽压受啄它牲烘召锄愧遏燕菏笛杯枕涵绣鳃怀厌缴忽砖03 流程控制03 流程控制37求解表达式求解表达式1 1表达式表达式2 2语句语句求解表达式求解表达式3 3下一个语句下一个语句N NT T表达式表达式1;while(表达式表达式2)语句语句;表达式表达式3;for(表达式表达式1;表达式表达式2;表达式表
24、达式3)循环体循环体for语句的语法语句的语法 执行一次执行一次冤患检递府状奶驹表汰粘篆蚀吠魄懒拢鳃演奶庄奶乍嗣诫渴葛朵朝色揉畴03 流程控制03 流程控制38注意:注意:1.1.若省略若省略表达式表达式1 1,则需在进入循环体之前置初值。,则需在进入循环体之前置初值。for(表达式表达式1;表达式表达式2;表达式表达式3)循环体循环体for(;表达式表达式2;表达式表达式3)循环体循环体2.2.若省略若省略表达式表达式2 2、表达式、表达式3 3,则在循环体内应有语,则在循环体内应有语 句能够在一定条件下跳出循环。句能够在一定条件下跳出循环。for(表达式表达式1;)循环体循环体3.3.三个
25、表达式都省略,需用分号分隔,表示三个表达式都省略,需用分号分隔,表示表表 达式达式2 2的值为非零的值为非零。for(;)循环体循环体4.4.表达式表达式1 1和和3 3可以通过可以通过“,”包含一个以上的简包含一个以上的简单的表达式。单的表达式。for(n=1,sum=0;n=100;n+)循环体循环体5.5.表达式表达式2 2:关系表达式(关系表达式(i=100)逻辑表达式逻辑表达式(ab&xy)数值表达式数值表达式;字符表达式字符表达式 6.for6.for语句后加分号,表示语句后加分号,表示循环体为空语句循环体为空语句。剔瓮移膛几佃擞纷捻佃褒蒂音裔捌丫充徒即镍场碟糖闭芝庆爬湘陌三牛亏0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流程 控制 汇编 课件
限制150内