版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章第四章 语句和预处理语句和预处理一、流程控制一、流程控制控制程序中语句的执行顺序。控制程序中语句的执行顺序。二、流程控制方式:二、流程控制方式:顺序控制、条件分支控制、循环控制。顺序控制、条件分支控制、循环控制。三、程序结构种类:三、程序结构种类:顺序结构、条件分支结构、循环结构。顺序结构、条件分支结构、循环结构。4.1 流程控制与程序结构流程控制与程序结构第四章第四章 语句和预处理语句和预处理1、顺序流程、顺序流程程序中的语句按先后顺序依此执行。程序中的语句按先后顺序依此执行。如:如:(1)int i; (2)cini; (3)couti2;计算机按语句的先后顺序依此执行计算机按语句的
2、先后顺序依此执行(1)()(2)()(3)4.1 流程控制与程序结构流程控制与程序结构第四章第四章 语句和预处理语句和预处理2、条件分支结构、条件分支结构(1)由特定的条件决定执行哪个语句。)由特定的条件决定执行哪个语句。(2)分类)分类 单分支结构单分支结构 多分支结构多分支结构(3)条件分支结构用)条件分支结构用if语句或语句或switch语句语句实现。实现。4.1 流程控制与程序结构流程控制与程序结构第四章第四章 语句和预处理语句和预处理3、循环结构、循环结构(1)由特定的条件决定某个语句重复)由特定的条件决定某个语句重复 执行的次数。执行的次数。(2)分类)分类 先判断后执行结构先判断
3、后执行结构 先执行后判断结构先执行后判断结构(3)循环结构用)循环结构用for语句语句, while语句或语句或 dowhile 语句来实现。语句来实现。4.1 流程控制与程序结构流程控制与程序结构第四章第四章 语句和预处理语句和预处理说明:说明:1、三种程序结构的共同特点:、三种程序结构的共同特点: 只有一个入口和一个出口。只有一个入口和一个出口。2、三种程序结构之间的关系:、三种程序结构之间的关系:衔接:一个结构的出口是另一个结构的入衔接:一个结构的出口是另一个结构的入口。口。嵌套:自身嵌套、相互嵌嵌套:自身嵌套、相互嵌套套4.1 流程控制与程序结构流程控制与程序结构第四章第四章 语句和预
4、处理语句和预处理一、一、if语句语句 格式格式1: 格式格式2: if(条件)语句(条件)语句1 if(条件)语句(条件)语句1 else 语句语句2若条件为真,执行若条件为真,执行语句语句1,否则什么都不做,否则什么都不做若条件为真,执行若条件为真,执行语句语句1,否则执行语句,否则执行语句24.2 选择语句选择语句第四章第四章 语句和预处理语句和预处理说明:说明:1、格式中的条件通常是一个逻辑表达式,、格式中的条件通常是一个逻辑表达式,若不是,则一切若不是,则一切0值转换为值转换为false,一切非一切非0值转换为值转换为true。2、格式中的语句、格式中的语句1和语句和语句2可以是基本语
5、句,可以是基本语句,也可以是复合语句,但不能不是语句,也可以是复合语句,但不能不是语句,也不能是多个语句。也不能是多个语句。4.2 选择语句选择语句第四章第四章 语句和预处理语句和预处理例例1:if (x)cout”x is non-zero ”else cout ” x is zero ”;例例2:if(x=100)a=1;b=2;else a=-1;b=-2;例例1:if (x)cout”x is non-zero ”;else cout0) if(ab) z=a; else z=b; if (n0) if(ab) z=a; else z=b;4.2 选择语句选择语句第四章第四章 语句和预
6、处理语句和预处理例例2: if(x0) if(x10) coutA ; else cout B ; else if(y-20) cout C ; else cout0) if(ab) z=a; else z=b;3、把永真条件或永假条件用于、把永真条件或永假条件用于if语句,是一语句,是一种严重的逻辑错误。种严重的逻辑错误。if (nb) z=a;4.2 选择语句选择语句第四章第四章 语句和预处理语句和预处理三、三、if多分支结构多分支结构通过规范化的通过规范化的if嵌套所构成的多分支结构。嵌套所构成的多分支结构。嵌套的嵌套的if语句放在语句放在elseelse之后之后4.2 选择语句选择语句
7、第四章第四章 语句和预处理语句和预处理格式:格式: if(条件(条件1)语句)语句1 else else if(条件(条件2)语句)语句2 else else if(条件(条件3)语句)语句3 else else if(条件(条件n)语句)语句n 【 else else 语句语句n+1 】注:多分支结构中的各个条件都应当是注:多分支结构中的各个条件都应当是 相互排斥的,任意时刻顶多有一个相互排斥的,任意时刻顶多有一个 条件得以满足。条件得以满足。4.2 选择语句选择语句第四章第四章 语句和预处理语句和预处理例:例:#include void main( ) float score; cin s
8、core; if(score100) cout ”输入错误!输入错误!”; else if (score 60) cout ”不及格不及格”; else if (score 70) cout ”及格及格”; else if (score 80) cout ”中等中等”; else if (score 90) cout ”良好良好”; else cout ”优秀优秀”; 4.2 选择语句选择语句第四章第四章 语句和预处理语句和预处理四、四、switch语句和语句和switch多分支结构多分支结构 1、switch语句的格式:语句的格式: switch(整型表达式)(整型表达式) case 整型常
9、量表达式整型常量表达式1:语句序列:语句序列1; case 整型常量表达式整型常量表达式2:语句序列:语句序列2; case 整型常量表达式整型常量表达式k:语句序列:语句序列k; 【default:语句序列语句序列k+1 】 4.2 选择语句选择语句第四章第四章 语句和预处理语句和预处理2、执行顺序:、执行顺序: 先计算先计算switch语句中表达式的值,然后语句中表达式的值,然后 在在case 语句中寻找值相等的常量表达式,语句中寻找值相等的常量表达式,并以此为入口,由此开始并以此为入口,由此开始 顺序执行。如顺序执行。如果没有找到果没有找到 相等的常量表达式,且相等的常量表达式,且def
10、ault 后的语句后的语句n+1存在,则执行语句存在,则执行语句n+1,否则什么都不做。,否则什么都不做。4.2 选择语句选择语句第四章第四章 语句和预处理语句和预处理3、几点说明:、几点说明:(1)整型表达式如果不是整型,则它的值将整型表达式如果不是整型,则它的值将自动转换为整型。自动转换为整型。 (2)整型常量表达式通常就是一个整型常量。整型常量表达式通常就是一个整型常量。如果不是,将自动转换为整型。如果不是,将自动转换为整型。 (3)case的作用只是标明一个入口以及转入该的作用只是标明一个入口以及转入该入口的条件。一旦从某个入口进入一个语入口的条件。一旦从某个入口进入一个语句序列,就从
11、该语句序列开始顺序执行,句序列,就从该语句序列开始顺序执行,直到以下所有语句序列执行完毕时为止。直到以下所有语句序列执行完毕时为止。4.2 选择语句选择语句第四章第四章 语句和预处理语句和预处理4、语句序列可以是空的,即其中一个语、语句序列可以是空的,即其中一个语 句也没有。句也没有。5、break语句可以提前结束语句可以提前结束switch语句的语句的 执行。执行。4.2 选择语句选择语句第四章第四章 语句和预处理语句和预处理例:根据整型变量例:根据整型变量dayoftheweek(0-6)值输出其表示的星期值输出其表示的星期几的英语单词。(无几的英语单词。(无break语句)语句) Swi
12、tch(dayoftheweek) case 0: cout ”Sunday”; case 1: cout ”Monday”; case 2: cout ”Tuesday”; case 3: cout ”Wednesday”; case 4: cout ”Thursday” case 5: cout ”Friday”; case 6: cout ”Saturday”; default:cout ”Unknown week day”; ;4.2 选择语句选择语句第四章第四章 语句和预处理语句和预处理若若dayoftheweek的值为的值为4,则输出结果为:则输出结果为:ThursdayFrida
13、ySaturdayUnknown week day4.2 选择语句选择语句第四章第四章 语句和预处理语句和预处理(有(有break语句)语句) Switch(dayoftheweek) case 0: cout ”Sunday”; break; case 1: cout ”Monday”; break; case 2: cout ”Tuesday”; break; case 3: cout ”Wednesday”; break; case 4: cout ”Thursday”; break; case 5: cout ”Friday”; break; case 6: cout ”Saturda
14、y”; break; default:cout ”Unknown week day”; break; ;4.2 选择语句选择语句第四章第四章 语句和预处理语句和预处理若若dayoftheweek的值为的值为4,则输出结果为:则输出结果为:Thursday4.2 选择语句选择语句第四章第四章 语句和预处理语句和预处理五、五、if多分支结构和多分支结构和switch多分支结构的相多分支结构的相互替代:互替代:替代条件:替代条件: switch语句中每个非空语句序列的最后语句中每个非空语句序列的最后一个语句都为一个语句都为break语句。语句。4.2 选择语句选择语句第四章第四章 语句和预处理语句和
15、预处理例:例:switch(k) if(k=1|k=2|k=3) coutA ;case1: else if(k=4|k=5)case2: cout B ;case3: coutA ;break; else cout C ;case4:case5: cout B ;break;default: cout=0&x=2) cout=20&x=22) cout Y ; else cout Z ;switch(x)case0: case1: case2:coutX ;break; case20: case21: case22:cout Y ; break; default:cout Z
16、 ;4.2 选择语句选择语句第四章第四章 语句和预处理语句和预处理一、一、for循环循环 1、 for语句构成一种先判断后执行的循环结构。语句构成一种先判断后执行的循环结构。 2、 for语句格式:语句格式: for(循环初始化;循环条件;循环参数调整)(循环初始化;循环条件;循环参数调整) 循环体循环体4.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理说明:说明:(1)循环条件应当是一个逻辑表达式。)循环条件应当是一个逻辑表达式。(2)循环初始化和循环参数调整都应当)循环初始化和循环参数调整都应当 是具有副作用的表达式,其中循环是具有副作用的表达式,其中循环 参数调整应当能够影响
17、循环条件。参数调整应当能够影响循环条件。(3)循环体是一个语句。(可以是一个)循环体是一个语句。(可以是一个 简单语句、复合语句或空语句)简单语句、复合语句或空语句)4.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理3、执行过程:、执行过程:(1)进行循环初始化;)进行循环初始化;(2)判断循环条件;)判断循环条件;(3)如果循环条件为真,则执行循环体、)如果循环条件为真,则执行循环体、对循环参数调整,然后转向步骤(对循环参数调整,然后转向步骤(2););如果循环条件为假,则结束循环。如果循环条件为假,则结束循环。4.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理4、流
18、程图、流程图:循环初始化循环初始化循环条件?循环条件?循环体循环体循环参数调整循环参数调整YN例:例:for(int i=0;i20;i+=5) couti ; 执行结果为:执行结果为: 0 5 10 154.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理4、 几种特殊的几种特殊的for语句语句(1)for( ;循环条件循环条件; ) 循环体循环体此时用此时用while语句更好。语句更好。(2)for(循环初始化循环初始化; ;循环参数调整循环参数调整)循环体循环体循环条件为空循环条件为空 永真条件永真条件 无限循环无限循环 在循环体中用在循环体中用break语句可强制退出语句可强
19、制退出在循环体中不用在循环体中不用break语句形成死循环语句形成死循环4.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理(3) for(循环初始化循环初始化;循环条件循环条件;循环参数调整循环参数调整)循环体为空,用于延迟一段时间。循环体为空,用于延迟一段时间。4.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理例例 输入输入10个数,计算并显示它们的合计。个数,计算并显示它们的合计。#includevoid main( ) double x,s=0; /保存累加结果的变量应初始化为保存累加结果的变量应初始化为0 cout”请输入请输入10个数个数: ”; for(in
20、t i=0;ix; s+=x; cout ”合计合计: ” s;若从键盘输入:若从键盘输入:1 2 3 4 5 6 7 8 9 10则结果为:则结果为:554.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理例例 显示输出一个三角形。显示输出一个三角形。#includevoid main( ) for(int i=0;i6;i+) coutendl; int j; for(j=0;j5-i;j+) cout ; for(j=0;ji+i+1;j+) cout ; 4.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理例例 显示输出显示输出99乘法表。乘法表。#includev
21、oid main( ) coutendlsetw(3)”| ”; int i; for(i=1;i10;i+) coutsetw(3)i; coutendl ” -+- ”; for(i=1;i10;i+)coutendlsetw(2)i ”| ”; for(int j=1;j10;j+)coutsetw(3)ij;4.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理说明:说明:1、setw:为下一个要输出的数据设置输:为下一个要输出的数据设置输 出宽度,宽度值由随后的参数给出。出宽度,宽度值由随后的参数给出。如:如:cout1setw(8)23;则输出结果为:则输出结果为:1 23
22、2、 iomanip.h:包含:包含setw等大多数操纵等大多数操纵 符的定义以及符的定义以及iostream.h中的所有内容。中的所有内容。4.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理二、二、while循环循环1、 while 语句构成一种先判断后执行的语句构成一种先判断后执行的 循环结构。循环结构。2、 while语句格式:语句格式: while(循环条件)(循环条件) 循环体循环体4.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理3、执行过程:、执行过程:当循环条件为真时,当循环条件为真时,执行循环体,否则执行循环体,否则退出循环。退出循环。 4、流程图(见
23、右上图)、流程图(见右上图) 循环条件?循环条件? 循环体循环体YN4.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理5、for语句和语句和while语句的区别:语句的区别:(1) for语句一般用于循环次数已知的情况;语句一般用于循环次数已知的情况;(2) while语句不仅可以用于循环次数已知语句不仅可以用于循环次数已知 的情的情 况,也可以用于循环次数未知的情况;况,也可以用于循环次数未知的情况;(3)一切用)一切用for语句实现的循环都可以用语句实现的循环都可以用while语句来代替,反之不可以。语句来代替,反之不可以。(4)在循环次数已知的情况下,)在循环次数已知的情况下
24、, for语句和语句和while语句可以相互转换。语句可以相互转换。4.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理例:例:for(int i=0;i10;i+) couti; int i=0;while(i10)cout0) cout0;i-)couti;4.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理例例 求数列求数列1/2,3/4,5/8,7/16,9/32的所有的所有 大于等于大于等于0.000001的数据项之和的数据项之和,显显 示输出计算的结果。示输出计算的结果。 4.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理方法一方法一基于递推公式基于
25、递推公式:#includevoid main( ) int n=1,d=2; double s=0.0,s0; while(s0=double(n)/d)=0.000001) s+=s0; n+=2; d+=d;couts;4.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理方法二方法二基于通项公式基于通项公式:#include #include void main( ) int i=1; double s=0.0,s0; while(s0=(i+i-1)/pow(2,i)=0.000001) s+=s0; i+; couts; 4.3 循环结构循环结构第四章第四章 语句和预处理语句
26、和预处理例:设计函数例:设计函数double powi(double x,int n);,它计算,它计算并返回并返回x的的n次方。次方。#includedouble powi(double x,int n) double a=1; /保存累乘结果的变量应初始化为保存累乘结果的变量应初始化为1 while(n-) a=x; return a;void main( )coutpowi(5.0,3)endlpowi(5.1,3);4.3 循环结构循环结构第四章第四章 语句和预处理语句和预处理三、三、dowhile循环循环1、 do while 语句构成一种先执行后判断语句构成一种先执行后判断 的循环结构。的循环结构。2、 do while语句格式:语句格式: do 循环体循环体 while(循环条件)(循环条件);4.3 循环结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工会福利招标后合同书
- 《多发伤的救治》课件
- 2025年福州货运从业资格考试题目和答案大全
- 2025年常州货运资格证500道题库
- 《复习免疫调节》课件
- 酒店业应收款项回收策略
- 独立办公室租赁合同
- 商业中心卷帘门施工合同
- 酒店客户信息移交办法
- 酿酒厂食堂外包服务评估
- 关于产教融合与校企合作的相关政策
- 《脚手架规范》JGJ130-2011(新)课件
- 《唐代诗歌李贺》课件
- 高速公路服务区环境管理整顿
- 《物联网系统安装与调试》期末复习试题
- Unit4UnderstandingIdeasClickforafriend教学设计-2023-2024学年高中英语
- GB/T 43417-2023儿童青少年脊柱侧弯矫形器的配置
- 品管圈QCC成果汇报提高瞳孔测量准确率(近距瞳孔测量指引)
- 公司投标书密封条模板
- 幼儿园小中大班健康、社会:《防拐防骗我知道》 课件
- 东北农业大学作业封皮
评论
0/150
提交评论