流程控制.pptx
- 文档编号:18959258
- 上传时间:2024-09-15
- 格式:PPTX
- 页数:80
- 大小:2.67MB
流程控制.pptx
《流程控制.pptx》由会员分享,可在线阅读,更多相关《流程控制.pptx(80页珍藏版)》请在冰点文库上搜索。
1第三章流程控制顺序结构选择结构循环结构其它控制语句应用举例重点2语句序列1语句序列2语句序列1条件?
成立不成立语句序列2语句序列不成立成立条件?
顺序结构选择结构循环结构流程结构由这三种基本结构经过反复嵌套构成的程序称为结构化程序3顺序结构顺序结构顺序结构:
按照语句出现的先后顺序依次执行。
例1:
编写程序:
要求输入直角三角形的斜边和一条直角边,求三角形另外一条直角边,周长和面积。
#include#includeusingnamespacestd;4voidmain()doublea,b,c;doublel,s;coutca;b=sqrt(c*c-a*a);l=a+b+c;s=a*b/2;cout另一直角边=bendl;cout周长=lendl;cout面积=sendl;5选择结构选择结构根据条件的值来判断程序的流向。
if语句,实现n分支,要求n个表达式;switch语句,实现多分支;用1个表达式1.if语句的三种形式if(表达式)语句if(表达式)语句1else语句2不能单独存在6表达式1假真表达式2表达式3表达式4语句5语句4语句3语句2语句1真真真假假假if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3elseif(表达式m)语句melse语句m+1if语句的三种形式7表达式表达式语句语句假假(0)真真(非非0)第一种形式的条件语句第一种形式的条件语句if(表达式)语句说明:
if后面的表达式类型任意语句可以是一句或复合语句。
if(x)语句if(x!
=0)if(!
x)if(xy)t=x;x=y;y=t;coutxy;if(x=0)8#includeusingnamespacestd;voidmain()intx,y,t;cout输入xyxy;if(xy)t=x;x=y;y=t;/x与y交换coutxyy)max=x;min=y;elsemax=y;min=x;复合语句11第三种形式的条件语句第三种形式的条件语句if(表达式)语句1elseif句语2例:
计算分数mark属于优良中及格不及格。
表达式1假真表达式2表达式3表达式4语句5语句4语句3语句2语句1真真真假假假elseif句语3else句语4if(mark=90)cout优;elseif(80=mark&mark90)cout良;elseif(70=mark&mark80)cout中;elseif(60=mark&mark70)cout及格;elsecout=90)cout优;elseif(80=mark)cout良;elseif(70=mark)cout中;elseif(60=mark)cout及格;elsecout=60)cout=70)cout=80)cout=90)cout优;elsecout不及格;程序执行一个分支后,其余分支不再执行。
elseif不能写成elseif。
当多分支中有多个表达式同时满足,只执行第一个与之匹配的语句。
13例:
编程实现分段函数#includeusingnamespacestd;voidmain()doublex,y;coutx;if(x0)y=x+1;coutx=x,y=x+1=yendl;复合语句xxxxxy110,10,1314elseif(x1)/0x1y=1;coutx=x,y=yendl;else/1xy=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与y互换z与y互换复合语句为什么要引入中间变量t?
17例:
考虑下面程序输出结果:
voidmain()intx=100,a=10,b=20;intv1=5,v2=0;if(ab)if(b!
=15)if(!
v1)x=1;elseif(v2)x=10;x=-1;coutx;结果:
-1该语句不属于选择结构中的语句18例:
求一元二次方程ax2+bx+c=0的根,其中系数a,b,c为实数,由键盘输入。
#include#includeusingnamespacestd;voidmain()doublea,b,c,delta,p,q;coutabc;delta=b*b-4*a*c;p=-b/(2*a);q=sqrt(fabs(delta)/(2*a);19if(delta=0)coutx1=p+qendlx2=p-qendl;elsecoutx1=p+jq;coutendlx2=p-jqendl;思考:
(1)a=0?
(2)a0,b=0?
(3)a0,b0?
20switch语句switch(表达式)case常量表达式1:
语句组1;case常量表达式2:
语句组2;case常量表达式n:
语句组n;default:
语句组n+1;break;break;break;必须为整型或字符型21说明:
说明:
10常量表达式的值必须互不相等。
20语句组i可以含有多个语句。
30语句中含有break语句时,执行完后退出switch语句。
40若某组语句不含break语句,则本组语句执行完毕后将继续执行下一组语句。
2250若没有常量值与表达式值相等,执行default语句n+1,若无该语句,退出switch语句。
60可以多个case共用一组语句。
80用switch语句实现的多分支结构程序,可用if语句或if语句的嵌套来实现。
70switch语句允许嵌套。
23例:
用switch结构求分段函数2a+1(1=a2)b=a2-3(2=a=1&a=2&a4:
.default:
b=a;关系表达式思考:
若省去break语句,情况会怎样?
break;break;24例:
从键盘上输入学生的分数,要求当学生的分数90100verygood!
8090good6080pass050Fail25#includeusingnamespacestd;voidmain()intscore;cinscore;switch(score/10)case10:
case9:
coutVerygood!
n;case8:
coutGood!
n;case7:
case6:
coutPass!
n;case5:
coutFail!
n;default:
coutinputerror;break;break;break;break;26例:
执行下列程序段后,输出结果为:
inta=1,b=0;switch(a)case1:
switch(b);case0:
cout“*0*”;break;case1:
cout“*1*”;break;case2:
cout“*2*”;break;*0*2*27#includeusingnamespacestd;voidmain()intx=1,y=0,a=0,b=0;switch(x)case1:
switch(y)case0:
a+;break;case1:
b+;break;case2:
a+;b+;break;case3:
a+;b+;coutab;a=2,b=128循环结构循环结构while表达式语句假(0)真(非0)do-whilewhile(表达式)语句do语句语句while(表达式表达式);forfor(表达式1;表达式2;表达式3)语句29WhileWhile语句语句while(表达式)语句;可以是复合语句,其中常含有改变条件表达式值的语句执行过程:
先计算表达式的值,当表达式的值为非0时执行语句;为0时执行循环的后继(退出循环)30明:
说循环体可为任意类型语句下列情况,退出while循环条件表达式不成立(为零)循环体内break,return,goto表达式始终为真:
while
(1)31例1:
程序的功能?
#includeusingnamespacestd;voidmain()intn,sum=0;n=1;while(n=100)sum=sum+n;n+;coutsum);条件表达式复合语句例1:
求n的值。
32#includeusingnamespacestd;voidmain()intn,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;循环体内的语句受循环的控制;在循环体外的语句不受循环的控制。
33程序拓展程序拓展1+1/2+1/3+1/100的值。
#includeusingnamespacestd;voidmain()intn=1;intsum=0;while(n=100)n+;coutsum;sum=sum+1/n;floatsum=0;sum=sum+1.0/n;34do-while语句语句do语句;while(表达式);可以是复合语句,其中常含有改变条件表达式值的语句执行过程:
执行过程:
先执行语句,后判断条件。
表达式的值为非0时,继续执行语句;表达式的值为0时,执行循环的后继。
35例:
例:
i=11,sun=0;dosun+=i;i+;while(i11);例:
例:
i=11,sun=0;while(i11)sun+=i;i+;36while与与do-while的比较:
的比较:
do-while和while可相互转化。
当while后面的表达式的第一次的值为“真”时,两种循环的结果相同。
否则,二者结果不相同(指二者具有相同的循环体的情况)。
37求解表达式1表达式2语句求解表达式3下一个语句NT表达式1;while(表达式2)语句;表达式3;for(表达式1;表达式2;表达式3)循环体for语句的语法语句的语法执行一次38注意:
注意:
1.若省略表达式1,则需在进入循环体之前置初值。
for(表达式1;表达式2;表达式3)循环体for(;表达式2;表达式3)循环体2.若省略表达式2、表达式3,则在循环体内应有语句能够在一定条件下跳出循环。
for(表达式1;)循环体3.三个表达式都省略,需用分号分隔,表示表达式2的值为非零。
for(;)循环体4.表达式1和3可以通过“,”包含一个以上的简单的表达式。
for(n=1,sum=0;n=100;n+)循环体5.表达式2:
关系表达式(i=100)逻辑表达式(ab&xy)数值表达式;字符表达式6.for语句后加分号,表示循环体为空语句。
39例:
用上述三种循环语句求n=1;s=0;while(n=100)s=s+n;n=n+1;n=1;s=0;dos=s+n;n=n+1;while(n=100);for(n=1,s=0;n=100;n+)s=s+n;1001nsn=40例:
求下列级数的前m项和.分析:
级数的通项为xm/m!
第i项ti与第i-1项ti-1之间存在如下关系:
ti=ti-1*x/i|ti|1e-5)e+=t;t=t/i;i+;第1项inti=1;floatt=1,e=0;for(;t1e-5;)e+=t;t=t/i;i+;for(i=1,t=1,e=0;t1e-5;e+=t,t=t/i,i+);分号不分号不能漏能漏空语句空语句.!
1.!
31!
21!
111ne42inti=1;floatt=1,x,e=0;cinxwhile(t1e-5)e+=t;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流程控制 流程 控制