已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-,C+语言及编程技巧,主讲:匡纲要国防科技大学电子科学与工程学院湖南长沙,-,第3讲程序控制结构,-,第3讲程序控制结构(一),程序控制结构2.1if语句2.2switch语句2.3while语句2.4do-while语句2.5for语句,-,程序控制结构,控制结构是指这样一种结构形式,它能控制顺序执行的流程,根据判断去决定执行什么,不执行什么。,控制结构,-,2.1if语句,if选择结构,if选择结构称为单路选择结构,因为这种结构所选择或忽略的动作只有一个。if(表达式)语句功能:若表达式的值为非0值,则执行其后的语句;否则,将什么也不执行。,-,2.1if语句,if选择结构示例,示例if(x=0)cout“Squarerootof”x“is”sqrt(x)0)absi=i;elseabsi=-i;coutTheabsolutevalueis“absi=0)couti;absi=i0?i:-i;coutTheabsolutevalueof“i“is”absic)max=a;elsemax=c;elseif(bc)max=b;elsemax=c;,if(ab)if(ac)max=a;elsemax=c;elseif(bc)max=b;elsemax=c;,2.1if语句,-,2.1if语句,扩展if语句示例,例7将百分制成绩score按相应的五等级制(A、B、C、D、F)转换,并输出结果。if(score100)cout=90)cout=80)cout=70)cout=60)coutGradeD.n;elsecoutGradeF.n;,实现六向分支,-,2.1if语句,容易混淆的两个运算符:“=”和“=”,运算符“=”:相等测试运算符(属于关系运算符)运算符“=”:赋值运算符,if(grade=F)coutYouarefailed.n;设grade等于FYouarefailed.设grade等于Aif(grade=F)coutYouarefailed.n;设grade等于FYouarefailed.设grade等于AYouarefailed.,-,2.2switch语句,switch多路选择结构,switch语句以清晰、直观、简明的形式描述多路择一功能。switch语句是多分支的选择语句。嵌套的if语句可以处理多分支选择。但是,用switch语句更加直观。它包含一系列case标号和一个可选的default子句。switch(表达式)case常量表达式1:语句1break;case常量表达式2:语句2break;.case常量表达式n:语句nbreak;default:语句n+1,-,switch语句的执行顺序是:首先对“整数表达式”进行计算,得到一个整型常量结果,然后从上到下寻找与此结果相匹配的常量表达式所在的case语句,以此作为入口,开始顺序执行入口处后面的各语句,直到遇到break语句,才结束switch语句,转而执行switch结构后的其他语句。如果没有找到与此结果相匹配的常量表达式,则从default:处开始执行语句序列n+1。,2.2switch语句,-,2.2switch语句,switch多路选择结构示例,例10承例7,改用switch语句编写switch(score/10)case10:case9:coutGradeA.n;break;case8:coutGradeB.n;break;case7:coutGradeC.n;break;case6:coutGradeD.n;break;case5:case4:case3:case2:case1:case0:coutGradeF.n;break;default:coutError!n;,把n个标记列在一起,表示这些条件具有一组相同的动作。case中的多个动作不需要用花括号括起来。default子句用于集中处理例外条件。其后亦可加上break语句。,-,几点说明:(1)default语句是可缺省的。(2)switch后面括号中的表达式只能是整型、字符型或枚举型表达式。(3)在各个分支中的break语句起着退出switch语句的作用。(4)case语句起标号的作用。标号不能重名。(5)可以使多个case语句共用一组语句序列。(6)各个case(包括default)语句的出现次序可以任意。(7)每个case语句中不必用,而整体的switch结构一定要写一对花括号。(8)switch结构也可以嵌套。,2.2switch语句,-,C+提供了三种循环控制语句:while语句,dowhile语句,for语句。三种语句都由相似的三部分组成:进入循环的条件,循环体,退出循环的条件;完成的功能也类似。所不同的只是三者进入与退出循环的方式不同。while语句:当条件满足时进入,重复执行循环体,直到条件不满足时退出。dowhile语句:无条件进入,执行一次循环体后判断是否满足条件,当条件满足时重复执行循环体,直到条件不满足时退出。for语句:当循环变量在指定范围内变化时,重复执行循环体,直到循环变量超出了指定的范围时退出。,循环控制语句,-,2.3while语句,while循环结构,while语句用于循环结构,可实现按一定规律的重复计算。它采用逻辑形式来控制循环体执行的次数。while(表达式)语句功能:只要表达式的值为非0值,就执行语句即循环体,如此循环反复,直至表达式的值为0时为止。,表达式,0,语句,非0,-,while循环由4个部分组成:循环变量初始化,判断条件,循环体,改变循环变量的值。例如,计算sum=1+2+3+10的while循环结构如下:intsum,i;sum=0;i=1;/循环变量初始化while(i=10)/判断条件/循环体sum=sum+i;i+;/改变循环变量的值,2.3while语句,-,2.3while语句,while循环结构示例,例11设intcounter;欲输出5句(每句一行)如下同样形式的文字信息IlikeC+!可写counter=1;while(counter=5)printf(IlikeC+!n);counter=counter+1;,谨防“多一错误”或“丢一错误”!,counter,counter=5,屏幕输出,IlikeC+!,IlikeC+!,IlikeC+!,IlikeC+!,IlikeC+!,1,2,3,4,5,6,1,0,-,2.3while语句,while循环结构示例,例12输出一串字符charch;ch=A;while(ch=K)coutch;ch=ch+1;coutendl;,ABCDEFGHIJK,-,2.3while语句,while循环结构示例,例13计算前N(设N=100)个自然数中所有奇数之和,并输出结果。/programc2_06.cpp#includevoidmain()constintN=100;intsum,counter;sum=0;counter=1;while(counter=N)sum=sum+counter;counter=counter+2;coutThetotalis“sum2)coutNULLOPERATIONn;/*相当于空操作语句*/while(1/*形成无限循环!*/,while循环结构:“先判断,后执行”。,-,注意:(1)如果循环体包含一个以上的语句,则应该用花括号括起来,以块语句形式出现。(2)仔细定义循环变量的初始值和判断条件的边界值。(3)对条件表达式的计算总是比循环体的执行多一次。这是因为最后一次判断条件为假时不执行循环体。(4)当循环体不实现任何功能时,要使用空语句作为循环体,表示为:while(条件表达式);(5)循环体中,改变循环变量的值很重要。如果循环变量的值恒定不变,或者当条件表达式为一常数时,将会导致无限循环(也即死循环)。若要退出一个无限循环,必须在循环体内用break等语句退出。,2.3while语句,-,2.4do-while语句,do-while循环结构,do-while循环结构与while循环结构类似。但后者“先判断,后执行”,而前者“先执行,后判断”。,功能:反复执行语句即循环体,直到表达式的值为0时为止。,复合语句do语句while(表达式);,单一语句do语句while(表达式);,-,例如:计算sum=1+2+3+10的dowhile循环结构如下:sum=0;i=1;/循环变量初始化do/循环体sum=sum+i;i+;/改变循环变量的值while(i=10)/判断条件与while语句不同的是:while语句有可能一次都不执行循环体,而dowhile循环至少执行一次,因为直到程序到达循环体的尾部遇到while时,才知道继续条件是什么。,2.4do-while语句,-,2.4do-while语句,do-while循环结构示例,例15用do-while语句改写例11counter=1;docoutIlikeC+!n);counter=counter+1;while(counter=5);例16用do-while语句改写例12ch=A;docoutch;ch=ch+1;while(ch=K);cout2)cout2);,-,2.4do-while语句,do-while循环结构示例,例18判断输入值value0,9intvalue;docoutvalue;while(!(value=0,用while语句改写intvalue=-1;while(!(value=0,-,2.4do-while语句,do-while循环结构示例,例19设i,j均大于0。求i与j的最大公因子并输出该数值。dok=i%j;i=j;j=k;while(j!=0);coutThelargestcommonfactoris“i“.n”;,-,2.4do-while语句,do-while循环结构特例,例20两个特例docoutEXECUTEONLYONCEn;while(1!=1);/*仅执行一次*/docoutINFINITELOOP!n;while(0=1);/*形成无限循环!*/,-,dowhile结构与while结构中都具有一个while语句,很容易混淆。为明显区分它们,dowhile循环体即使是一个单语句,习惯上也使用花括号包围起来,并且while(表达式)直接写在花括号“”的后面。这样的书写格式可以与while结构清楚地区分开来。例如:dosum+=i+;while(i=100);,2.4do-while语句,-,2.5for语句,for循环结构,for语句具有控制循环执行次数的简明形式。它常使程序设计更为简单明了。for(表达式1;表达式2;表达式3)语句功能:以表达式1作为控制变量初值,表达式2作为继续循环的条件,表达式3作为递增控制变量的值,以确定次数执行语句即循环体。,-,2.5for语句,for循环结构示例,例21用for语句改写例11for(counter=1;counter=5;counter=counter+1)coutIlikeC+!n;例22用for语句改写例12for(ch=A;ch=K;ch=ch+1)coutch;coutendl;,-,2.5for语句,for循环结构示例,例23用for语句改写例13中的程序/programc2_06.cpp#includevoidmain()constintN=100;intsum,counter;sum=0;for(counter=1;counter=N;counter=counter+2)sum=sum+counter;coutThetotalis“sum“.n;,Thetotalis2500.,-,2.5for语句,for循环结构特例,例24两个特例for(i=6;i=6;i=i+1)coutEXECUTEONLYONCEn;/*仅执行循环体一次*/for(ch=Z;ch=Y;ch=ch-1)coutDONOTHINGn;/*相当于空操作语句*/,for循环结构:“先判断,后执行”。,-,2.5for语句,for循环结构变型,for语句的三个表达式可以部分地或全部省略,但其中的分号必须保留。例25承例21,可以改写为counter=1;for(;counter=5;coun
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 狂犬病常见症状解析及护理技巧培训
- 口腔溃疡常见症状及护理路径
- 2025云南昆明富民县人民医院招聘编外合同制人员11人笔试考试备考试题及答案解析
- 2025上海同济大学继续教育学院学生事务办公室主任岗位招聘1人考试笔试备考题库及答案解析
- 2025湖南湘西自治州消防救援支队政府专职消防员招聘78人备考题库及答案详解1套
- 儿童牙科行为管理中的行为问题干预策略
- 儿童神经术后疼痛的多模式镇痛方案
- 2026北京建信金融租赁有限公司校园招聘5人备考题库附答案详解(综合题)
- 儿童哮喘重症脱机的多学科延续护理方案
- 2025重庆南岸区南山街道公益性岗位招聘13人备考题库附答案详解(满分必刷)
- 压力管理与情绪调节:护士心理健康维护
- 2025上海对外经贸大学武装部干事招聘1人参考题库附答案
- 宜宾市叙州区事业单位2025年下半年公开考核招聘工作人员(24人)笔试考试备考题库及答案解析
- 家具厂代工合同范本
- 2025台州玉环市国有企业招聘12人笔试考试参考题库及答案解析
- 运动安全急救课件
- 高层民用建筑消防安全管理规定课件
- 年货展会活动方案策划
- 2025年(初级)工商管理考试试卷(含五套)含答案
- 015《煤矿安全规程》修改条款学习辅导:第十五讲 电气
- 学堂在线 人工智能原理 章节测试答案
评论
0/150
提交评论