C++程序设计第04章-C++的流程控制课件.ppt

上传人(卖家):三亚风情 文档编号:3514798 上传时间:2022-09-10 格式:PPT 页数:89 大小:1.05MB
下载 相关 举报
C++程序设计第04章-C++的流程控制课件.ppt_第1页
第1页 / 共89页
C++程序设计第04章-C++的流程控制课件.ppt_第2页
第2页 / 共89页
C++程序设计第04章-C++的流程控制课件.ppt_第3页
第3页 / 共89页
C++程序设计第04章-C++的流程控制课件.ppt_第4页
第4页 / 共89页
C++程序设计第04章-C++的流程控制课件.ppt_第5页
第5页 / 共89页
点击查看更多>>
资源描述

1、1第第 4 章章 C+的流程控制的流程控制4.1 4.1 算法概述算法概述4.2 C+4.2 C+语言程序的结构和语句语言程序的结构和语句4.3 4.3 选择结构语句的使用选择结构语句的使用4.4 4.4 循环结构语句的使用句循环结构语句的使用句4.5 4.5 控制语句的应用举例控制语句的应用举例24.1 算法概述算法概述程序程序=数据数据+算法算法算法算法:为解决一个问题而采取的:为解决一个问题而采取的有限步骤有限步骤。程序的算法程序的算法:使用程序解决问题的计算步骤:使用程序解决问题的计算步骤 体现为语句体现为语句不同的算法效率不同:不同的算法效率不同:采用优秀的解题方法,合理安排计算步骤

2、,以最少采用优秀的解题方法,合理安排计算步骤,以最少的计算步骤完成计算任务的方法我们称为高效率算法。的计算步骤完成计算任务的方法我们称为高效率算法。使用了比较笨拙的解题方法,通过较多的运算步骤使用了比较笨拙的解题方法,通过较多的运算步骤来实现同样的计算任务的计算方法我们称为低效率算法来实现同样的计算任务的计算方法我们称为低效率算法。为了有效地进行解题,不仅需要保证算法正确,还为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。要考虑算法的质量,选择合适的算法。34.1.2 算法的设计原则算法的设计原则 1符合数学计算规则符合数学计算规则 只有符合数学规则的计算步骤才可

3、以被计算机正确只有符合数学规则的计算步骤才可以被计算机正确执行。执行。2保证结果确定保证结果确定 如果一个算法对同一组数据进行多次计算,竟然获如果一个算法对同一组数据进行多次计算,竟然获得多个不同的结果,这种算法是不确定的,是无效的。得多个不同的结果,这种算法是不确定的,是无效的。保证算法的确定性,最重要的方面是排除程序中随保证算法的确定性,最重要的方面是排除程序中随机数的产生机数的产生(变量初始化变量初始化)。3程序能够正常结束程序能够正常结束 一个合理的算法应包含有限的操作步骤,而不能是一个合理的算法应包含有限的操作步骤,而不能是无限的。无限的。44.1.2 算法的设计原则算法的设计原则

4、4合理的输入合理的输入 一个实际有效的程序中应该含有零个或者多个输入一个实际有效的程序中应该含有零个或者多个输入(一般会在程序的算法中加入一个或者多个输入一般会在程序的算法中加入一个或者多个输入 )。5合理的输出合理的输出 一个有效的程序在设计算法时必须保证程序至少要一个有效的程序在设计算法时必须保证程序至少要有一个输出。有一个输出。54.1.3 算法的表示工具算法的表示工具 怎样来描述一个算法呢?怎样来描述一个算法呢?自然语言自然语言 流程图流程图 N-S 图图 伪代码伪代码(类似于数学语言类似于数学语言)流程图流程图是目前全球软件开发领域使用最广是目前全球软件开发领域使用最广泛的算法表示工

5、具,它通过一些严格定义图形泛的算法表示工具,它通过一些严格定义图形的组合来表示算法的步骤以及数据变化的走向的组合来表示算法的步骤以及数据变化的走向。用图形表示算法,直观形象,易于理解。用图形表示算法,直观形象,易于理解。自然语言就是人们日自然语言就是人们日常生活中使用的语言常生活中使用的语言。容易造成误解容易造成误解 1973年美国学者年美国学者 I.Nassi 和和 B.Shneideman提出的一种无流线提出的一种无流线的流程图的流程图6起止框起止框流程图表示算法流程图表示算法输入输出框输入输出框判断框判断框流程线流程线处理框处理框连接点连接点注释框注释框流程图符号流程图符号:7例:求例:

6、求 的值。的值。1001.4131211求多项式的累乘积问题。求多项式的累乘积问题。定义变量:定义变量:M 累乘积累乘积 N 代表一项的分母代表一项的分母算法描述:算法描述:自然语言自然语言+伪代码伪代码算法算法:M1,N1 MM NN+1 如果如果 N100,转,转 否则,转否则,转 输出输出 M 的值的值 结束结束1N循环循环8开始开始结束结束M1N1MM NN+11N输出输出 M 的值的值N100TrueFalse处理框处理框流程线流程线判断框判断框 M1 N1 MM NN+1 N100 输出输出 M 的值的值1N用用N-S 图描述图描述用流程图描述用流程图描述9结构化程序设计结构化程序

7、设计的基本结构的基本结构:三种。三种。1.顺序结构顺序结构:先执行先执行A操作操作,再再 执行执行B操作操作.AB(a)流程图流程图 (b)N-S图图ABA、B可以是可以是一个简单语句一个简单语句或一个基本结构或一个基本结构4.1.4 结构化程序设计中基本结构的表示结构化程序设计中基本结构的表示 102.选择结构选择结构:C(Condition)代表一个条件)代表一个条件 C True False A B(a)流程图流程图 (b)N-S图图 True FalseCAB113.循环结构循环结构:当(当(while)型循环)型循环(1)当条件)当条件 C 成立时,反复执行成立时,反复执行 A 操作

8、,操作,直到直到 C 为假时,才停止循环。为假时,才停止循环。CAFalseTrue 当当 C为真为真 A(a)流程图流程图 (b)N-S图图有可能循环体一次都不执行有可能循环体一次都不执行 123.循环结构循环结构:直到(直到(until)型循环型循环(2)先执行)先执行 A 操作,再判条件操作,再判条件 C,若为若为“假假”重复执行重复执行A,直到,直到 C 为为“真真”停止停止ACFalseTrue A 直到直到 C为真为真(a)流程图流程图 (b)N-S图图循环体至少要被执行一次循环体至少要被执行一次 13AB三种结构特点:三种结构特点:单入口、单出口。单入口、单出口。每一部分都可能被

9、执行到。每一部分都可能被执行到。没有死循环。没有死循环。A、B可能是一个更基本的结构。可能是一个更基本的结构。CAFalseTrueACFalseTrue True FalseCAB144.2 C+语言程序的结构和语句语言程序的结构和语句 计算机程序运行的时候是将一条条的计算机程序运行的时候是将一条条的语句语句翻译成翻译成机器指令机器指令,控制计算机产生计算的结果的。所以,控制计算机产生计算的结果的。所以语语句是计算机程序的基本组成单位句是计算机程序的基本组成单位。注意注意:在:在C+C+程序中,任何执行语句都必须写在函程序中,任何执行语句都必须写在函数中,不允许出现不属于函数的独立执行语句。

10、数中,不允许出现不属于函数的独立执行语句。1.定义语句定义语句 int a,b;语句分类语句分类:(6类类)C+程序是由若干函数构成,而一个函数由若干语程序是由若干函数构成,而一个函数由若干语句构成。这些语句组合成上述三种结构以实现算法。句构成。这些语句组合成上述三种结构以实现算法。152.控制语句控制语句:(9种,种,控制语句的执行流程控制语句的执行流程)(1)if()else 条件语句条件语句(2)for()循环语句循环语句(3)while()循环语句循环语句(4)do while()循环语句循环语句(5)continue 结束本次结束本次 循环语句循环语句(6)break 中止执行中止执

11、行switch或循环语句或循环语句(7)switch 多分支选择语句多分支选择语句(8)go to 转向语句转向语句(9)return 从函数返回语句从函数返回语句165.空语句空语句:;只有一个分号,什么都不做。只有一个分号,什么都不做。主要用于作被转向点,或空循环体。主要用于作被转向点,或空循环体。3.函数调用语句函数调用语句:例例:cos(x);调用标准库函数调用标准库函数 a=maxx(x1,x2);调用自定义函数调用自定义函数4.表达式语句表达式语句:由:由“表达式表达式+分号分号”构成。构成。例:例:a+b;a=3+x;i+;17 6.复合语句复合语句:用用 把多条语句括起来构成复

12、合语句,把多条语句括起来构成复合语句,从语法上看成一条简单语句。从语法上看成一条简单语句。例例:a=1;b=2;c=3;三个简单语句三个简单语句一个一个复合语句复合语句或写成:或写成:a=1;b=2;c=3;184.3 选择结构语句的使用选择结构语句的使用4.3.1 if 语句语句1.if()语句语句2.if()语句语句1 else 语句语句2语句语句 表达式表达式假假真真语句语句1 表达式表达式假假真真语句语句2 if 语句语句-根据给定条件选择所执行的操作。根据给定条件选择所执行的操作。不平衡不平衡 if 语句语句单选单选平衡平衡 if 语句语句二中选一二中选一19例例4.1 输入三个数,

13、求出并输出其中最大数输入三个数,求出并输出其中最大数两个独立的两个独立的不平衡不平衡 if 语句语句动态看程序的执行动态看程序的执行,有些部分可能执行到,有些部分可能执行到,也可能执行不到。也可能执行不到。#include using namespace std;int main()float a,b,c,max;cout a b c;max=a;if(max b)t=b;if(max c)t=c;cout 最大值最大值:max endl;return 0;20max=b maxb假假真真max=cmax a b c;max=a;cout 最大值最大值:max endl;流程图流程图如:如:输

14、入数据输入数据 1 2 3 和和 1 3 2,程序每次执行的语句不同。程序每次执行的语句不同。21例例4.2 输入三个数,求出并输出其中最大数输入三个数,求出并输出其中最大数两个独立的两个独立的平衡平衡 if 语句语句#include using namespace std;int main()float a,b,c,max;cout a b c;if(a b)max=b;else max=a;if(maxc)cout 最大值最大值:c endl;else cout 最大值最大值:max endl;return 0;223.if()语句语句1 else if 语句语句 else if()语句语

15、句2 组合组合 if 语句语句 else if()语句语句3 else 语句语句n 语句语句1 表达式表达式1假假真真语句语句2表达式表达式2表达式表达式3语句语句3 语句语句4 假假假假真真真真对程序的一次执行,对程序的一次执行,只可能执行语句只可能执行语句1、语句语句2、语句语句n中的一个语句中的一个语句23例例4.3 输入三个数,求出并输出其中最大数输入三个数,求出并输出其中最大数组合组合 if 语句的使用,语句的使用,一条语句一条语句#include using namespace std;int main()float a,b,c;cout a b c;if(a=b&a=c)cout

16、 最大值最大值:a=a&b=c)cout 最大值最大值:b endl;else cout 最大值最大值:c endl;return 0;24例:输入学生的分数例:输入学生的分数 x,根据成绩的高低,根据成绩的高低,输出不同等级输出不同等级若若 x 为为:90100分分 则输出则输出A8089分分 则输出则输出B7079分分 则输出则输出C6069分分 则输出则输出D60分以下分以下 则输出则输出E#include using namespace std;int main()int x;cin x;if(x=90)cout A=80)cout B=70)cout C=60)cout D n;el

17、se cout E n;return 0;例如输入:例如输入:75执行顺序执行顺序输出结果输出结果注意注意:条件的写法:条件的写法25例:输入学生的分数例:输入学生的分数 x,根据成绩的高低,根据成绩的高低,输出不同等级输出不同等级#include using namespace std;int main()int x;cin x;if(x=90)cout A n;else if(80=x 90)cout B n;else if(70=x 80)cout C n;else if(60=x 70)cout D n;else cout E n;return 0;注意注意:条件的写法:条件的写法此写

18、法错误:此写法错误:若若 x=-1则表达式结果为真!则表达式结果为真!正确的写法为:正确的写法为:80=x&x=80(以下类推)(以下类推)26例:输入学生的分数例:输入学生的分数 x,根据成绩的高低,根据成绩的高低,输出不同等级输出不同等级#include using namespace std;int main()int x,d;cin x;d=x/10;if(d=9)cout A n;else if(d=8)cout B n;else if(d=7)cout C n;else if(d=6)cout D n;else cout E n;return 0;注意注意:条件的写法:条件的写法正

19、确的写法为:正确的写法为:d=8(以下类推)(以下类推)此写法错误:此写法错误:若若 x 90,则不论,则不论 x 为何值为何值总是输出总是输出 B。27例:任意输入一个小于等于例:任意输入一个小于等于 5 位数的正整数,位数的正整数,输出其位数。输出其位数。例:例:输入输入 23 输出输出2输入输入 13579 输出输出5#include using namespace std;int main()int x,ws;cin x;if(x=10000)ws=5;else if(x=1000)ws=4;else if(x=100)ws=3;else if(x=10)ws=2;else ws=1;

20、cout ws endl;return 0;注意注意:条件的写法:条件的写法28#include using namespace std;int main()char c;cin c;if(c 32)cout 控制字符控制字符n;else if(0=c&c=9)cout 数字字符数字字符n;else if(A=c&c=Z)cout 大写字母大写字母n;else if(a=c&c=z)cout 小写字母小写字母n;else cout 其他字符其他字符n;return 0;例例 判断输入字符的种类。把字符分为五类:判断输入字符的种类。把字符分为五类:数字字符数字字符 大写字母大写字母 小写字母、小

21、写字母、控制字符控制字符(ASCII码码 32)其他字符其他字符294.3.2 if 语句的嵌套形式语句的嵌套形式if()if()语句语句1 else 语句语句2else if()语句语句3 else 语句语句4内嵌内嵌 if内嵌内嵌 if内嵌的内嵌的 if-else 语句为一条语句语句为一条语句4.3.2 if 语句的嵌套使用语句的嵌套使用if()if()语句语句1 else if()语句语句2 else 语句语句3内嵌不平衡内嵌不平衡 if 语句语句内嵌平衡内嵌平衡 if if 语句语句if()if()语句语句1else if()语句语句2 else 语句语句3 加花括号加花括号31#in

22、clude using namespace std;int main()float x,y;cout x;if(x=10)if(x10)y=-10;else y=5;else y=20;cout y=y endl;return 0;例例4.5用嵌套的用嵌套的if语句解决数学问题语句解决数学问题 y=-10(x10)嵌套嵌套 if 语句语句,流程图见流程图见 书书32if(a+bc&b+ca&c+ab)s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);cout area endl;else cout b)max=a;else max=b;max=(ab)?a

23、:b;运算原则:运算原则:当当表达式表达式1为为真真时,整个表达式的值为时,整个表达式的值为表达式表达式2 当当表达式表达式1为为假假时,整个表达式的值为时,整个表达式的值为表达式表达式3运算优先级:运算优先级:比赋值运算符高比赋值运算符高 比算术、关系、逻辑运算符低比算术、关系、逻辑运算符低结合性:结合性:自右向左自右向左C+语言中唯一的语言中唯一的三目运算符三目运算符一般形式:一般形式:表达式表达式1?表达式表达式2 :表达式表达式334int main()char ch;cin ch;ch=(ch=A&ch=Z)?(ch+32):ch;cout ch grade;switch(grade

24、)case A:cout “优优“endl;case B:cout “良良“endl;case C:cout “中中“endl;case D:cout “及格及格“endl;default:cout “不及格不及格“grade;switch(grade)case A:case B:case C:cout 60n;break;case D:case E:cout 60n;grade的值为的值为A、B或或C 时执行同一组语句时执行同一组语句grade的值为的值为D或或E 时执时执行另外一组语句行另外一组语句39注意:注意:1在在switch语句中,语句中,default分支可以放在任何位置。但分支

25、可以放在任何位置。但是为了配合常量表达式匹配查询的执行流程,使得程序是为了配合常量表达式匹配查询的执行流程,使得程序书写和阅读方便,一般将书写和阅读方便,一般将default分支写在分支写在switch语句的语句的最后一行。最后一行。2每个常量表达式的值都必须互不相同,否则当表达每个常量表达式的值都必须互不相同,否则当表达式的值与多个常量表达式的值都匹配时,计算机将无法式的值与多个常量表达式的值都匹配时,计算机将无法决定到底执行哪一个常量表达式后面的语句序列。决定到底执行哪一个常量表达式后面的语句序列。3常量表达式必须是一个确定的字符类型或者整数类常量表达式必须是一个确定的字符类型或者整数类型

26、的常量数值,而不能是浮点数或者变量表达式。型的常量数值,而不能是浮点数或者变量表达式。4switch语句并不与组合的语句并不与组合的if语句完全等价。语句完全等价。switch语语句只能处理字符类型和整数类型的条件判断,而组合的句只能处理字符类型和整数类型的条件判断,而组合的if语句不但可以处理字符类型和整数类型的条件判断,语句不但可以处理字符类型和整数类型的条件判断,还可以对浮点数等其它的条件进行判断。还可以对浮点数等其它的条件进行判断。40例:例:i=2;switch(i)case 1:i+;case 2:i+;case 3:i+;case 4:i+;default:i+;cout i n

27、;输出:?输出:?输出:输出:641例例4.6 根据收入,计算应缴纳的公积金根据收入,计算应缴纳的公积金特点:根据收入,缴纳比例不同特点:根据收入,缴纳比例不同 in 1000 2%比例比例1000=in 2000 3%比例比例2000=in 5000 4%比例比例5000=in 10000 5%比例比例10000=in 6%比例比例缴纳总金额:缴纳总金额:fee=in*r%in 收入收入r 缴纳比例的分子缴纳比例的分子程序举例程序举例temp=in/1000;当当 in 1000 temp=0 r=2当当 1000=in 2000temp=1 r=3当当 2000=in 5000temp=2

28、,3,4 r=4当当 5000=in 10000 temp=5,6,7,8,9 r=5当当 10000=in temp=其它值其它值 r=642 case 5:case 6:case 7:case 8:case 9:r=5;break;default:r=6;fee=in*r/100.0;cout公积金为公积金为:feeendl;return 0;运行过程:运行过程:输入输入:3500 输出输出:公积金为:公积金为:140#include using namespace std;int main()int in,temp,r;float fee;cout in;temp=in/1000;swi

29、tch(temp)case 0:r=2;break;case 1:r=3;break;case 2:case 3:case 4:r=4;break;43#include using namespace std;int main()int in,r;float fee;cin in;/输入收入输入收入if(in1000)r=2;else if(in2000)r=3;else if(in5000)r=4;else if(in10000)r=5;else r=6;fee=in*r/100.0;cout公积金为:公积金为:fee num1 op num2;switch(op)case +:result

30、=num1+num2;break;case -:result=num1-num2;break;case *:result=num1*num2;break;case /:result=num1/num2;break;default:无效运算符无效运算符n;cout num1 op num2 =result n;return 0;例例 设计一个简单的计算器程序,设计一个简单的计算器程序,完成简单的四则运算完成简单的四则运算如:如:输入输入 2.5*4 输出输出 2.5*4=10又如:又如:输入输入 2.5+4 输出输出 2.5+4=6.5454.4 循环结构语句的使用循环结构语句的使用循环循环 当

31、满足一定的条件,重复处理的过程当满足一定的条件,重复处理的过程如:如:inin1123.解决步骤:解决步骤:(1)整型变量)整型变量 sum=0,i=0(2)令令 i=i+1,sum=sum+i,(3)若若 i100,则重复步骤(则重复步骤(2)(4)输出)输出 sum步骤(步骤(2)称为)称为循环体循环体实现循环的四种方式实现循环的四种方式1.goto+语句标号语句标号2.while 语句语句3.for 语句语句4.do-while 语句语句464.4.1 goto 语句和标号语句和标号goto 标号标号;一般形式一般形式:其作用是其作用是确定流程跳转目标确定流程跳转目标语句标号:语句标号:

32、用标识符表示,命名规则与变量名相同。用标识符表示,命名规则与变量名相同。goto 语句主要用途语句主要用途1.与与 if 语句一起构成循环结构语句一起构成循环结构2.从循环体中跳转到循环体外从循环体中跳转到循环体外 47例例4.7 用用if语句、语句、goto语句构成循环的实例语句构成循环的实例 if、goto语句语句求和求和#include using namespace std;int main()int i=1,sum=0;loop:if(i=100)sum=sum+i;i+;goto loop;cout sum n;return 0;i=1sum=0sum=sum+i i+i=100真

33、真假假ii 11 0 048由于在程序中大量使用由于在程序中大量使用gotogoto跳转跳转命令会造成程序结构的混乱,该命令会造成程序结构的混乱,该命令要限制使用命令要限制使用49 4.4.2 while()语句语句 一般形式一般形式 while()当表达式为真当表达式为真(非非0)值时,值时,执行执行 while 语句中的内嵌语句语句中的内嵌语句。语句语句 表达式表达式假假真真先判断先判断表达式表达式后执行后执行语句语句50例例4.8 while语句语句求和实例求和实例#include using namespace std;int main()int i=1,sum=0;while(i=1

34、00)sum=sum+i;i=i+1;cout sum=sum n;return 0;ii 11 0 0循环体循环体假假sum=sum+ii=i+1i=100真真i=1sum=0输出输出sum51while语句中应注意的问题语句中应注意的问题循环体包含一个以循环体包含一个以上的语句时,应该上的语句时,应该用大括号括起来用大括号括起来#include using namespace std;int main()int i=1,sum=0;while(i=100)sum=sum+i;i=i+1;cout sum=sum n;return 0;在循环体内应有在循环体内应有使循环趋于结束使循环趋于结束

35、的语句的语句 累加计算中的累加和变量一般初始化为累加计算中的累加和变量一般初始化为0,累乘计算,累乘计算中的累乘积变量一般初始化为中的累乘积变量一般初始化为1。524.4.3 for语句语句for(初始化初始化表达式表达式;条件表达式条件表达式;修正表达式修正表达式)语句语句一、一般形式一、一般形式语句语句 条件表达式条件表达式假假真真修正表达式修正表达式初始化表达式初始化表达式 相当于相当于“当型当型”循环循环初始化表达式初始化表达式;while(条件表达式条件表达式)语句语句;修正表达式修正表达式;53二、二、for语句最简单的应用形式语句最简单的应用形式 for(i=1;i=100;i+

36、)sum=sum+i;i=1;while(i=100)sum=sum+i;i+;for(初始化初始化表达式表达式;条件表达式条件表达式;修正表达式修正表达式)语句语句54例例4.9 用用for语句语句求和实例求和实例#include using namespace std;int main()int sum=0;for(int i=1;i=100;i+)sum+=i;cout 从从1加到加到100的总和是:的总和是:sum endl;return 0;ii 11 0 055分号不能省略分号不能省略i=1;for(;i=100;i+)sum=sum+i;分号不能省略分号不能省略for语句有关说明

37、语句有关说明2.“初始化表达式初始化表达式”可省略,初始化移至循环体前可省略,初始化移至循环体前3.“条件表达式条件表达式”可省略,做可省略,做“永真永真”处理,处理,循环无终止地进行。循环无终止地进行。真真sum=sum+ii+i=1for(i=1;i+)sum=sum+i;1.在在C+的的for语句的初始化表达式中,不但可以为变语句的初始化表达式中,不但可以为变量赋初始值,还可以定义变量。量赋初始值,还可以定义变量。for(int i=0;i100;i+);56for语句有关说明语句有关说明4.“修正表达式修正表达式”可省略,可省略,“修正修正”移至循环体内移至循环体内循环变量在循循环变量

38、在循环体内变化环体内变化5.“循环体循环体”可为空,可为空,for(i=1;i=100;sum=sum+i,i+);将循环体中应做的工作,放在将循环体中应做的工作,放在“修正表达式修正表达式”中。中。for(i=1;i=100;)sum=sum+i;i+;576.三个三个“表达式表达式”和和“语句语句”都可省略,无限循环都可省略,无限循环7.“初始化表达式初始化表达式”和和“修正表达式修正表达式”可以是一个以上的表达式可以是一个以上的表达式while(1);for语句有关说明语句有关说明for(sum=0,i=1;i=100;i+,j-)sum=sum+i;for(i=1;i=100;i+,i

39、+)sum=sum+i;for(;);584.4.4 do-while()语句语句do while()一、一般形式一、一般形式 先执行指定的内嵌语句,先执行指定的内嵌语句,然后判断表达式。然后判断表达式。语句语句 表达式表达式假假真真先执行语句先执行语句然后再判断然后再判断表达式表达式59二、二、例例4.10 do-while()语句语句 求和求和#include using namespace std;int main()int i=1,sum=0;do sum+=i;i+;while(i=100);cout sum=sum n;return 0;假假sum+=ii+i i;while(i=

40、10)sum=sum+i;i+;cout i;do sum=sum+i;i+;while(i=10);cout sum;return 0;程序运行过程程序运行过程1 55程序运行过程程序运行过程1 55程序运行过程程序运行过程11 0程序运行过程程序运行过程11 1162例例:输入一个:输入一个 4 位数的整数,输出其各位数字之和。位数的整数,输出其各位数字之和。如:输入如:输入2426 输出输出 14解解1(硬性分解各位硬性分解各位)#include using namespace std;int main()int n,a,b,c,d;cin n;/*n=abcd a千位,千位,b百位,百

41、位,c十位,十位,d个位个位*/a=n/1000;b=n%1000/100;c=n%100/10;d=n%10;cout a+b+c+d n;return 0;没有使用循环,没有使用循环,若若n是是4位以上的数字,位以上的数字,此方法不适用。此方法不适用。63解解2(循环循环 分解各位分解各位)#include using namespace std;void main()int n,sum=0;cin n;while(n0)sum+=n%10;n=n/10;cout sum n;return 0;可将可将 n 推广为任意位!推广为任意位!64例:分解整数:例:分解整数:找出找出100100到

42、到10001000之间的符合下述条件之间的符合下述条件的数,条件为:该数能被的数,条件为:该数能被5 5整除而且该数各位数字之整除而且该数各位数字之和等于和等于9 9。如:数如:数225225#include using namespace std;int main()int i,a,b,c;for(i=100;i1000;i+=5)a=i/100;b=i%100/10;c=i%10;if(a+b+c=9)cout i n;return 0;65三种三种循环的比较循环的比较_三种循环三种循环可以处理同一问题。可以处理同一问题。_while 和和 do-while 循环循环,循环变量应在循环语句

43、,循环变量应在循环语句前前初初始化。始化。_while 循环循环和和 for 循环循环是是先判断表达式后执行语句先判断表达式后执行语句,而而 do-while 循环循环是先执行语句,然后判断表达式是先执行语句,然后判断表达式。_对对 while、do-while 和和 for循环循环,可用可用 break 语句跳语句跳出循环,而用出循环,而用 continue 语句结束本次循环语句结束本次循环z whilez forz do-while 664.4.5 break 语句和语句和 continue 语句语句break;break语句语句1.break 语句可以使流程语句可以使流程跳出跳出 swi

44、tch 结构结构2.break 语句可以用来从循环体内语句可以用来从循环体内跳出循环体跳出循环体,即提前结束循环,接着执行循环下面的语句即提前结束循环,接着执行循环下面的语句。for(r=1;r100)break;cout area;当面积值大于当面积值大于100时,跳出循时,跳出循环体,不再执环体,不再执行其余几次循行其余几次循环环一般形式一般形式:67continue 语句语句continue;一般形式一般形式:其作用是其作用是结束本次循环结束本次循环,即跳过循环体下面未执,即跳过循环体下面未执行的语句,接着进行下一次是否执行循环的判定。行的语句,接着进行下一次是否执行循环的判定。for(

45、n=100;n=200;n+)if(n%3=0)continue;cout n n;当当n能被能被3整除时整除时,跳,跳出本次循环,不再执出本次循环,不再执行行 cout 语句,但是还语句,但是还要继续循要继续循环判断环判断本程序的功能是打本程序的功能是打印出印出100200之间不之间不能被能被3整除的整数整除的整数68for(r=1;r100)break;cout area;for(n=100;n=200;n+)if(n%3=0)continue;cout n n;三、三、break 和和 continue 语句的区别语句的区别69例:比较两段程序的区例:比较两段程序的区别别for(i=1;

46、i=5;i+)x=i*i;if(x=9)break;cout x n;cout i=i n;for(i=1;i=5;i+)x=i*i;if(x=9)continue;cout x n;cout i=i n;输出:输出:1 4 i=3输出:输出:1 4 16 25 i=670例例4.11使用循环语句按照定义求任意两个数的最大公约使用循环语句按照定义求任意两个数的最大公约数和最小公倍数。数和最小公倍数。#include using namespace std;int main()int x,y,i,k;cout x y;k=x=1;i-)/求最大公约数求最大公约数 if(x%i=0&y%i=0)c

47、out 最大公约数是最大公约数是:i y?x:y;/取两数中的大数取两数中的大数 for(i=k;i=x*y;i+)/求最小公倍数求最小公倍数 if(i%x=0&i%y=0)cout 最小公倍数是最小公倍数是:i endl;break;return 0;724.4.6 循环的嵌套及其应用循环的嵌套及其应用嵌套:嵌套:一个循环体内包含另一个完整的循环结构一个循环体内包含另一个完整的循环结构多层循环:多层循环:内嵌的循环体内又嵌套循环结构内嵌的循环体内又嵌套循环结构 前述的三种循环都可以互相嵌套前述的三种循环都可以互相嵌套三重循环三重循环双重循环双重循环73#include using names

48、pace std;int main()int i,j;cout 乘法表:乘法表:endl;for(i=1;i=9;i+)/外循环控制输出的行数外循环控制输出的行数 for(j=1;j=i;j+)/内循环内循环 cout i j =i*j t;cout endl;return 0;例例4.12用循环嵌套技术输出用循环嵌套技术输出99乘法表乘法表 74例例4.13 求求 ax2+bx+c=0 方程的根方程的根,#include#include using namespace std;int main()float a,b,c,disc,x1,x2,real,image;cout a b c;cou

49、t n方程方程;if(fabs(a)=1e-7)/a=0,注意写法注意写法 cout 不是二次方程,解为不是二次方程,解为:-c/b endl;else /处理其它三种情况处理其它三种情况 disc=b*b-4*a*c;75 if(fabs(disc)=1e-7)/disc=0 cout 有两个相等的实数根有两个相等的实数根:-b/(2*a)1e-7)x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);cout 有两个不相等的实数根有两个不相等的实数根:x1 和和 x2 endl;else real=-b/(2*a);image=sqrt(-disc

50、)/(2*a);cout 有两个复数根有两个复数根:endl;cout real +image i endl;cout real -image i endl;return 0;76例例4.14输入一个输入一个int型整数型整数num,逆向输出其各位数字,同时求出其位数,逆向输出其各位数字,同时求出其位数以及各位数字之和。以及各位数字之和。#include using namespace std;int main()int num,sum=0,k,i=0;cinnum;while(num0)k=num%10;cout k ;sum+=k;i+;num=num/10;cout n各位数字之和各位数

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(C++程序设计第04章-C++的流程控制课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|