版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 C+的流程控制语句,掌握顺序结构 熟悉表达式语句、空语句和复合语句 掌握选择结构:单选条件语句、双选条件语句、switch语句 掌握重复结构:for语句、while语句和dowhile语句 掌握break语句和continue语句,2020/8/2,2,学习目的,2020/8/2,3,4.1.1 C+语言的语句概述 表达式语句:有返回值的语句,如 a= =b; 声明语句: 对变量、类、函数等声明,如:int a; 空语句:仅由分号组成,如: ; 函数调用语句:用于调用函数,如:sin(x); 块语句:多个语句的组合,如: int a,b=1;a=b*2;coutb) max=a;els
2、e max=b; 说明语句:对结构、变量进行定义、描述的语句。,4.1 C+语言的语句和程序结构,2020/8/2,4,1.顺序结构:按顺序依次执行各语句。 2.选择结构:根据执行结果选择某一语句。 如:若x1,则y=5 若x1,则y= -5 3.循环(重复)结构:根据条件反复执行一个语句或若干个语句。,2020/8/2,5,B,A,A,B,NS图,流程图,顺序结构,2020/8/2,6,if 条件语句: if(expression) statement; if(expression) statement1; else statement2;,2020/8/2,7,结果:max(a,b)=3,
3、2020/8/2,8,例:求一元二次方程 ax2+bx+c=0 的解。其中系数a、b、c从键盘上输入。,解答,2020/8/2,9,注意:若statement 也是一个 if 结构的嵌套的语句,则 else 与最近的未配对的 if 匹配.如果在 if 和 else 后有多个语句, 则要用花括弧括起来. 即: if(exp.) stat1; stat2; else ifstat1; stat2; else if else stat1; stat2;,一般格式: ?:,2020/8/2,10,功能:计算表达式1的值,若不为0,计算表达式2,该值作为计算结果,否则计算表达式3,其值作为计算结果。,这
4、是一个三元运算符。,2020/8/2,11,三元运算符是左结合。 如 if(ab?a:cb?c:d)x=y; coutb?a:b; z=ab?a:cb?c:d;,三元运算可嵌套使用。 如三个变量a、b、c中取最大值可如下表示: max=(a=b?a:b)=b?a:b); 即max=(t=a=b?a:b)=b)t=a; else t=b; if(tc)max=c; else max=t;,若a=1,b=2,c=3,d=4,则结果z=3,2020/8/2,12,4.2.3开关 语句switch :多情况选择,形式,switch (expression) case c1: statements; b
5、reak; case c2: statements; break; case c3: statements; break; default: statements; ,流程,先计算 exp 的值,再执行相应的语句,若表达式的值不在ci之内,执行 default 语句。,2020/8/2,13,2020/8/2,14,例6:#include void main(void) int m; cout m; switch(m) case 1: cout one endl; break; case 2: cout two endl; break; case 3: cout three endl; bre
6、ak; default: cout default endl; ,2020/8/2,15,switch 语句注意点,case 后的常量类型 = switch中表达式类型 这些类型只能为:int、char、 enum 在每个 case 中, 必须加入 break,,以达到仅选一种的目的。 当省略case后面的语句时,可实现多个入口,执行同一个语句序列。如:,2020/8/2,16,int digit,white,other; char c; switch(c) case 0: case 1: case 2: case 3: case 9:digit+;break; case : case n:
7、case t:white+;break; default:other+; ,当字符变量c的值为0、1、2、3、9时,均执行同一语句。,2020/8/2,17,再如下列程序段: float x; int a,b; a=3;b=4; switch(x*2) /x*2为实数,不允许 case 2.5: /2.5为实数,也不合法 case a+b: /不是常量表达式,不合法 case 1,2,3: /不合法 ,注意:由于开关语句的限制,故不同的内容需要可选择不同的语句。,2020/8/2,18,4.3 循环结构语句:while 和 do/while,形式,while (condition) state
8、ments; do statements; while (condition);,区别,while: 先验证条件,再执行语句 do/while: 先执行语句,再验证条件,注意,不能死循环,即无限循环。,2020/8/2,19,while 和 do/while 执行流程,2020/8/2,20,例11:利用while()语句求S=1+2+3+100。,本例也可用如下程序实现: #include void main(void) int i=1,s=1; while(+i=100) s+=i; couts=sn; ,#include void main(void) int i=0,s=0; whil
9、e(i100) i+;s+=i; cout“s=”sn; ,例12:利用dowhile()语句求S=1+2+100。,#include void main(void) int i=1,s=0; do s+=i;i+; while(i100); cout“s=”sn; ,2020/8/2,21,2020/8/2,22,4.3.3 重复控制语句:for,2020/8/2,23,例14:生成n项Fibonacci数列的前40项,生成公式为: f1=1; f2=1; fn=fn-1+fn-2,#include #include void main(void) long f1=1,f2=1,f3; co
10、utsetw(12)f1setw(12)f2; /设置输出宽度 for(int i=3;i=40;i+) f3=f1+f2; coutsetw(12)f3; f1=f2; f2=f3; /更新f1,f2的值 if(i%4= =0) coutn; /每输出4个数换行 coutn; ,2020/8/2,24,for语句的一些注意事项,1.防止无限循环 2.循环体有多条语句时,要加 3.表达式可缺省,但分号不能省,如 int n=1; for( ; n10; n+) 4.变量可在表达式中声明: for(int n=1; n10; n+),三种循环的比较,1.for与while均先判断条件,循环体有可
11、能不执行,而do while先执行,故循环体至少执行一次。 2.不同情况作不同选择,建议先考虑for及while循环。,2020/8/2,25,注:循环可嵌套进行。即在循环语句内嵌循环语句。,2020/8/2,26,4.4 控制执行顺序的语句,4个转向语句:break, continue, return, goto break: 结束整个循环或用在switch中 continue: 结束本次循环 return: 中止并返回调用函数处 goto: 软件开发中尽可能不用,2个中止函数:exit( )、abort(),它们将中止程序的执行。,2020/8/2,27,1.标号 标号的一般格式形式为:l
12、abel:S 2.Goto语句 goto的一般格式为:goto label; 不可转进条件或循环语句中;,2020/8/2,28,exit()和abort()函数均包含在头文件stdlib.h中,前者正常终止程序,后者异常终止程序。,exit()函数的格式:exit(); 表达式的值为整数,0为正常退出,其余为异常退出。退出前作收尾工作,如关闭文件,释放空间等。,abort()函数的格式:abort(); 括号中不含任何参数。退出前不作收尾工作。,2020/8/2,29,本章小结,基本语句中的控制语句: if/else:单选 switch:多种选择 do/while:循环语句,不能无限循环 for:循环语句,不能无限循环,转向语句和中止语句: break,continue:注意两者的区别 return:中止函数的执行,回到函数调用处 exit( ):中止程序的执行,#include /求一元二次方程的解 #include Void main(void) float a,b,c,delta; coutabc; cout=0) /有根 delta=sqrt(del
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 收尾及结算阶段奖惩制度
- 幼儿园考核与奖惩制度
- 博物馆奖惩制度范本大全
- 仓库打包发货奖惩制度
- 工程纪律管理奖惩制度
- 大学安全工作奖惩制度
- 小学班集体管理奖惩制度
- 手术室护理人员奖惩制度
- epc工程建设质量奖惩制度
- 中医科奖惩制度及细则
- 2026年甘肃省安全员C证题库及答案
- 教科版三年级下册科学实验报告(20 篇)
- 2026年人教版新教材数学三年级下册教学计划(含进度表)
- 2026年江西交通职业技术学院单招职业技能测试题库及答案解析(名师系列)
- 总经理财务知识培训
- GB/T 13911-1992金属镀覆和化学处理表示方法
- Unit 1 Discover useful structures 语法精讲课件 【高效识记+延伸拓展】高中英语人教版(2019)选择性必修第三册
- 高脂血症健康讲座课件
- 营养配餐员理论考试复习题库(附答案)
- 复测分坑作业指导书
- 现代汉语词汇学精选课件
评论
0/150
提交评论