




已阅读5页,还剩72页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章C+的流程控制语句,程序的三种基本结构,1、顺序,3、循环,if语句,判断选择语句,有三种形式:if(表达式)语句,2)if(表达式)语句1else语句2,if(ab)coutb)couta;elsecoutj)i+;if(ij);i+;,if总是与它上面最近的else配对,如要改变,用复合语句。注意书写格式,相互配对的语句要对齐。,例:输入两个实数,按代数值由小到大次序输出这两个数。voidmain(void)floata,b,t;/定义变量coutab;/给变量赋值a:7,b:3if(ab)t=a;a=b;b=t;/交换数据,用中间变量coutatbb为真,表达式的值等于a,max值为2当a=1b=2ab为假,表达式的值等于b,max值为2,注意:条件运算符的优先级比赋值运算符高x=(x=3)?x+2:x-32.结合方向自左至右ab?a:cd?c:d3.三个表达式的类型可不同z=ab?A:a+b,x=5,x=9,y=6,z=5;x=(x+y)%z=x%z+y%z)?1:0;coutx=xendl;,x=1;y=2;z=3;x+=y+=z;couty?x+:y+)endl;,y=y+z=5x=x+5=6,9,x=0,voidmain(void)intx=1,y=2,z=3;x+=y+=z;couty?x+:y+=y,xyz输出,653,6536,6635,6636,6,6799,6797,9,344,3440,3441,执行以下程序段后,变量a,b,c的值分别是:intx=10,y=9;inta,b,c;a=(-x=y+)?-x:+y;b=x+;c=y;,x=8y=10a=8,b=8x=9,c=10,voidmain(void)inta=5,b=1,c=0;if(a=b+c)cout“*n”;elsecout“$n”;,*,switch语句,多分支选择语句。if语句只有两个分支,而实际问题中常常需要用到多分支的选择。如,成绩分为A(10085)、B(8470)、C(6960)、D(60以下)等。,cin.get(grade);if(grade=A)cout“10085n”;elseif(grade=B)cout“8470n”;elseif(grade=C)cout“6960n”;elseif(grade=D)cout“nopassn”;elsecout“errorn”;,switch(表达式)case常量表达式1:语句1case常量表达式2:语句2case常量表达式n:语句ndefault:语句n+1,switch(grade)caseA:cout“10085n”;caseB:cout“8470n”;caseC:cout“6960n”;caseD:cout“nopassn”;default:cout“errorn”;,如果grade为A,则结果为,1008584706960nopasserror,其流程为:先计算表达式的值,然后顺序地与case子句中所列出的各个常量进行比较,若表达式的值与常量中的值相等,就开始进入相应的case语句执行程序,遇到case和default也不再进行判断,直至switch语句结束。如果要使其在执行完相应的语句后中止执行下一语句,可以在语句后加break。,switch(grade)caseA:cout“10085n”;break;caseB:cout“8470n”;break;caseC:cout“6960n”;break;caseD:cout“nopassn”;break;default:cout“errorn”;,注意:1、switch与if不同,它仅能判断一种逻辑关系,即表达式是否等于指定的常量,而if可以计算并判断各种表达式。,2、case子句后必须为常量,常常是整型和字符型。,3、default可以省略,这时,不满足条件什么也不执行。,4、case和default只起标号的作用,顺序可以颠倒,颠倒时注意后面的break语句。,5、多个case语句可以共用一组程序。caseA:caseB:caseC:cout“pass!n”;,voidmain(void)inti=10;switch(i)case9:i+;case10:i+;case11:i+;default:i+;cout“i=”iendl;,i=11,i=12,i=13,i=13,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+;cout“a=“at“b=”bendl;,a=1,a=2b=1,a=2b=1,有3个整数a,b,c,由键盘输入,输出其中最大的数。,while语句,while(表达式)语句组1语句组2,a=3;while(a100)a=a+5;cout“a=“a;,当循环语句超过一条时,要用将语句组组合在一起。,求1+2+3+100,voidmain(void)inti=1,sum=0;/定义变量,初始化while(i=100)/构造循环sum=sum+i;/循环体,多次执行i=i+1;cout“sum=”sumendl;/输出结果,0,1,1,2,真,3,3,真,6,4,真,10,5,真,真,100,真,101,真,5050,假,sum5050,1,2,3,3,6,4,100,5050,101,循环结束!,实际上是将i不停地累加到一起,注意:1、循环体如果为一个以上的语句,用括起。2、循环体内或表达式中必须有使循环结束的条件,即一定有一个循环变量。3、while表达式可以成为语句,要特别小心。,k=2;while(k!=0)coutk,k-;coutendl;,输出:21,2,真,2,1,真,1,0,假,回车,voidmain(void)intnum=0;while(num=2)num+;coutnumendl;,123,0,真,1,1,真,2,2,真,3,3,假,无,voidmain(void)inty=10;while(y-);cout“y=”yendl;,输出:y=-1,输出是什么?循环几次?,10,真,无,9,真,无,.,真,无,1,真,无,0,假,1,循环:10次,k=10;while(k=0)k=k-1;coutk;,输出:0,x=10;while(x!=0)x-;x=10;while(x)x-;x=10;while(x-);x=10;while(-x);,以下语句,循环退出时x为多少?,x=0,x=0,x=-1,x=0,#includevoidmain()charch;while(cin.get(ch),从键盘输入2473,则程序的输出结果是:,输出:,6,6,8,9,7,7,dowhile语句,do语句组1while(表达式);语句组2,求1+2+3+100,voidmain(void)inti=1,sum=0;/定义变量,初始化do/构造循环sum=sum+i;/循环体,多次执行i=i+1;while(i=100);cout“sum=”sum0),输出:y=1,x=0,1,0,假,若为while循环,则一次也不执行循环体,输出为:y=0,x=0,s=7;dos-=2;while(s=0);cout“s=”sendl;,输出:s=5,for语句,for(表达式1;表达式2;表达式3)语句组1(循环体)语句组2,for(循环变量赋初值;循环结束条件;循环变量增值),求1+2+3+100,voidmain(void)inti,sum;for(i=1,sum=0;i=100;i+)sum=sum+i;cout“sum=”sumendl;,voidmain(void)inti,sum;i=1;sum=0;while(i=100)sum=sum+i;i=i+1;cout“sum=”sumendl;,注意:1、当型循环,条件测试是在循环开始时进行,有可能一次也进入不了循环体。,2、for语句中的三个表达式可以部分省略或全部省略,但;不能省略,若省略表达式2,则表示循环条件为真。,3、for语句中三个表达式可以是任何有效的C语言表达式。,voidmain(void)chari,j;for(i=a,j=z;ij;i+,j-)coutij;coutendl;,输出:azbycx.lomn,a,z,真,az,b,y,真,by,c,x,真,cx,真,.,真,.,m,n,mn,.,n,m,假,CR,以下循环结果如何?for(i=0,k=-1;k=1;i+,k+)coutx;,10,1,循环的嵌套,一个循环体内又包含另一个完整的循环体,称为循环的嵌套。,注意:1、循环体内有多个语句要用括起来。2、书写格式要清晰。,for(;).for(;).,voidmain(void)inti,j,k=0,m=0;for(i=0;i2;i+)for(j=0;j3;j+)k+;k-=j;m=i+j;cout“k=“k“,m=“mn?n:mfor(i=1;ir;i+)if(m%i=0,将12345的每位分别打印出来。,1234510512345/101234,12341041234/10123,123103123/1012,1210212/101,1%1011/100,while(n)coutn%10=1e-5)S=S+term;term=(-1)*term*x*x/(2*n)*(2*n-1);n+;,旧的,新的,break语句和continue语句,break在switch语句中,可以使流程跳过判断体,执行下面的程序。在循环体中,也可以从循环体内跳出循环体,提前结束循环。,for(;)cinx;if(x=123)break;,当输入123时,结束循环。,break只能退出一层循环或switch语句。,a=10;y=0;doa+=2;y+=a;cout50)break;while(a=14);,第一次:a=12y=12,输出:a=12,y=12,第二次:a=16y=28,输出:a=16,y=28,第三次:a=16y=44,输出:a=16,y=44,第四次:a=16y=60,输出:a=16,y=60,continue:其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。,voidmain(void)inti;for(i=1;i=5;i+)if(i%2)cout“*”;elsecontinue;cout“#”;cout“$n”;,输出:*#*#*#$,1,真,1,*#,2,真,0,无,3,真,1,*#,4,真,0,无,5,真,1,*#,6,假,$,voidmain(void)inti,j,x=0;for(i=0;i2;i+)x+;for(j=0;j=3;j+)if(j%2)continue;x+;x+;cout“x=“xendl;,i=0i2第一次,i=1i2第二次,i=2i2结束,输出:x=8,0,假,2,1,真,2,2,假,3,3,真,3,4,4,0,假,6,1,真,6,2,假,7,3,真,7,4,8,voidmain(void)intk=0;charc=A;doswitch(c+)caseA:k+;break;caseB:k-;caseC:k+=2;break;caseD:k=k%2;continue;caseE:k=k*10;break;default:k=k/3;k+;while(cG);cout“k=”kendl;,输出:k=4,A,真,B,2,B,真,C,4,C,真,D,7,D,真,E,1,E,真,F,11,F,假,G,4,总结:,在循环体中,break从循环体内跳出循环体,提前结束循环。,for(.;.;.).break;.,continue:其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。,for(.;.;.).continue;.,while(.).continue;.,求素数:只可以被1与自身整除的数。,判断一个数t是否为素数,用2到t-1循环除。,for(i=2;it;i+)if(t%i=0)break;if(i=t)cout“是素数。n”;elsecout=t/2),求范围内的素数(50100):,for(t=50,k=0;t=100;t+)for(i=2;it;i+)if(t%i=0)break;if(i=t)coutt“;k+;if(k%5=0)coutendl;,判断t是否为素数,保证每行输出5个数据,鸡兔共有30只,脚共有90只,问鸡兔各有多少?,voidmain(void)inti;/i代表鸡,则兔为30-i只for(i=0;i=15;i+)if(2*i+4*(30-i)=90)cout“鸡”iendl;cout“兔”30-iendl;,一百万富翁遇到一陌生人,陌生人找他谈一个换钱的计划,该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我两分钱,第三天我仍给你十万元,你给我四分钱,.,你每天给我的钱是前一天的两倍,直到满一个月(30天),百万富翁很高兴,欣然接受了这个契约。请编写程序计算陌生人给百万富翁多少钱,百万富翁给陌生人多少钱?,利用循环语句编程,打印下列图形:*,找规律:,上面四行,for(i=0;i0;j-)cout;for(k=1;k=i+1;k+)cout*;coutendlendl;,行号:i空格:4-i星号:i,voidmain(void)inti,j,k;for(i=0;i0;j-)cout0;j-)cout*;coutendlendl;,打印图形:*,行号:i空格:3-i星号:2*i+1,如果打印n行,行号:0n-1,空格:0n-1-i,计算:222222.2222222?,累加和s0,设通项为t,t的初值为2,22=2*10+2;,222=22*10+2;,2222=222*10+2;,t=t*10+2;,所以,通项的循环表示为:,前一项,当前项,循环体为:,voidmain(void)intt,s;s=0;t=2;for(inti=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美术毕业设计展示
- 2025年事业单位工勤技能-湖南-湖南房管员四级(中级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-湖南-湖南医技工五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北铸造工五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北放射技术员四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北广播电视天线工一级(高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北图书资料员四级(中级工)历年参考题库典型考点含答案解析
- 2025年保险行业数字化理赔服务与保险理赔服务体验优化报告
- 2025年沉浸式戏剧行业市场趋势与消费者行为分析报告
- 2025年事业单位工勤技能-海南-海南房管员四级(中级工)历年参考题库含答案解析
- 2025至2030年中国应急产业市场供需现状及投资战略研究报告
- 中医院临床路径培训课件
- 湖南省岳阳市岳阳楼区2024-2025学年八年级下学期期末考试英语试题(含笔试答案无听力音频及原文)
- 基于SERVQUAL模型的物业公司服务质量提升研究
- 精索静脉曲张治疗-洞察及研究
- 养老护理员培训班课件
- 不买社保的劳动协议书
- 服装厂开业搞活动方案
- 临水作业安全培训
- 清洁与消毒培训
- 【艾青诗选】批注
评论
0/150
提交评论