C语言程序设计循环结构程序设计.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言程序设计循环结构程序设计.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计循环结构程序设计.ppt(42页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第5 5章章 循环结构程序设计循环结构程序设计 C C 语言程序设计语言程序设计北京航空航天大学北京航空航天大学 交通科学与工程学院交通科学与工程学院徐国艳徐国艳2022/10/252l 循环的基本概念循环的基本概念l 不同形式的循环控制不同形式的循环控制l 多重循环问题多重循环问题2022/10/253什么是循环?什么是循环?为什么要使用循环?为什么要使用循环?5.1 5.1 循环的基本概念循环的基本概念l循环是有规律的重复操作。循环是有规律的重复操作。将复杂问题将复杂问题分解分解为简单的操作过程,程序只对简单过程描述,为简单的操作过程,程序只对简单过程描述,这些过程的多次这些过程的多次重
2、复重复就可完成对问题的求解。就可完成对问题的求解。重复的频繁性决定了循环在程序设计中必不重复的频繁性决定了循环在程序设计中必不可少!可少!一、循环问题一、循环问题问题问题1 1:问题问题2 2:求学生平均成绩求学生平均成绩 分数相加后除以课分数相加后除以课分数相加后除以课分数相加后除以课程程程程数数数数做做9999次加法次加法问题问题3 3:找出数找出数找出数找出数集集集集x x x x中能同时被中能同时被中能同时被中能同时被3 3 3 3和和和和7 7 7 7整除的数整除的数整除的数整除的数 找数找数问题分解问题分解循环控制循环控制2022/10/2545.1 5.1 循环的基本概念循环的基
3、本概念l while循环循环(5.2节节)l do while循环循环(5.3节节)l for循环循环(5.4节节)l if-goto 循环循环(一般不用)一般不用)难点:难点:C提供四种循环控制语句:提供四种循环控制语句:2022/10/255循环的基本概念(续)循环的基本概念(续)二、循环结构二、循环结构循环结构有两种形式:循环结构有两种形式:l当型循环结构当型循环结构l直到型循环结构直到型循环结构循环体循环体N条件条件Y当型循环当型循环直到型循环直到型循环条件条件NY循环体循环体先判断后循环先判断后循环 先循环后判断先循环后判断入口入口出口出口循环体中是一个过程,该过程的复杂程度取决于问
4、题及对问题的分解2022/10/2565.1 5.1 循环的基本概念(续)循环的基本概念(续)循环体循环体N条件条件Yl当型循环当型循环条件条件 循环循环 次数次数Y循环体循环体?Y Y 执行执行 1Y Y 执行执行 3Y Y 执行执行 2N N 结束结束 循环体循环体Y?循环体循环体Y?N3次在循环入口处判断在循环入口处判断当条件为真时执行循环当条件为真时执行循环2022/10/257循环的基本概念(完)循环的基本概念(完)l直到型循环直到型循环在循环出口处判断,当条在循环出口处判断,当条件为真时继续执行循环,件为真时继续执行循环,直到条件为假时为止。直到条件为假时为止。条件条件NY循环体循
5、环体条件条件 循环循环 次数次数执行执行 1Y 执行执行 3Y 执行执行 2N N 结束结束 3次Y条件条件循环体循环体Y条件条件循环体循环体Y条件条件循环体循环体Y 执行执行 4条件条件循环体循环体N4 4次2022/10/2585.2 while循环控制循环控制 l l语句一般格式语句一般格式 while(表达式表达式)语句组语句组 l l一般为一般为一般为一般为关系关系关系关系表达式表达式表达式表达式或或或或逻辑逻辑逻辑逻辑表达式,也表达式,也表达式,也表达式,也可以是可以是可以是可以是C C语言其他类语言其他类语言其他类语言其他类型的合法表达式型的合法表达式型的合法表达式型的合法表达式
6、 l l用来控制循环体是用来控制循环体是用来控制循环体是用来控制循环体是否被执行否被执行否被执行否被执行l l称为称为称为称为内嵌语句内嵌语句内嵌语句内嵌语句,可,可,可,可以是基本语句、控以是基本语句、控以是基本语句、控以是基本语句、控制语句,也可以是制语句,也可以是制语句,也可以是制语句,也可以是复合语句复合语句复合语句复合语句l l是循环重复执行的是循环重复执行的是循环重复执行的是循环重复执行的部分部分部分部分 2022/10/259l l语句一般格式语句一般格式 while(表达式表达式)语句组语句组 l l功能:功能:功能:功能:计算计算计算计算“表达式表达式”的值,为非的值,为非的
7、值,为非的值,为非0 0(逻辑(逻辑(逻辑(逻辑真)时,重复执行内嵌语句,每执行一次,真)时,重复执行内嵌语句,每执行一次,真)时,重复执行内嵌语句,每执行一次,真)时,重复执行内嵌语句,每执行一次,就判断一次表达式的值,直到表达式的值就判断一次表达式的值,直到表达式的值就判断一次表达式的值,直到表达式的值就判断一次表达式的值,直到表达式的值为为为为0 0 时结束循环,转去执行时结束循环,转去执行时结束循环,转去执行时结束循环,转去执行whilewhile后面的语后面的语后面的语后面的语句。句。句。句。2022/10/2510当表达式为真当表达式为真 语句语句N-SN-S结构图结构图结构图结构
8、图N NY Y流程图流程图流程图流程图表达式非表达式非0?语句语句循环控制条件循环控制条件循环控制条件循环控制条件循环体循环体循环体循环体l l语句一般格式语句一般格式 while(表达式表达式)语句组语句组 2022/10/2511例如:例如:【例【例5.1】编写程序,求】编写程序,求100个自然数的和个自然数的和即:即:s=1+2+3+100 思路:寻找思路:寻找加数加数与与求和求和的规律的规律 加数加数i i从从1变到变到100,每循环一次,使,每循环一次,使i增增1,直到直到i的值超过的值超过100。i i的的初值初值初值初值设为设为1。求和求和设变量设变量 sum sum 存放和存放
9、和,循环求,循环求sum=sum+isum=sum+i,直至直至i超过超过100。2022/10/2512算法和程序:算法和程序:#include stdio.hvoid main()int i,sum;i=1;sum=0;while(i=100)sum=sum+i;i+;printf(sum=%dn,sum);程序输出结果:程序输出结果:sum=5050i i:循环控制变量循环控制变量sumsum:累加器累加器 i=1,sum=0 当当i=100 sum=sum+i i+输出输出sum2022/10/2513注意:注意:l l如果如果while的的(表达式表达式)值为值为0,则循环体,则循环
10、体一次也不执行一次也不执行(例如当例如当i的初值的初值=101)。l l在循环体中必须有使循环趋向结束的操作,在循环体中必须有使循环趋向结束的操作,否则循环将无限进行(否则循环将无限进行(死循环死循环)。)。l l在循环体中,语句的先后位置必须符合逻在循环体中,语句的先后位置必须符合逻辑,否则会影响运算结果。辑,否则会影响运算结果。思考程序段的输出?思考程序段的输出?思考程序段的输出?思考程序段的输出?i=1;sum=0;while(i=100)i+;sum=sum+i;运行后,输出:运行后,输出:运行后,输出:运行后,输出:sum=5150sum=5150原因是什么?原因是什么?原因是什么?
11、原因是什么?2022/10/2514注意(续):注意(续):l l总结:总结:为了保证循环正常运行,应该特为了保证循环正常运行,应该特别注意:别注意:循环控制条件的描述循环控制条件的描述 控制条件的初始状态(初始值)控制条件的初始状态(初始值)循环体内部对控制条件的影响循环体内部对控制条件的影响2022/10/25155.3 do-while语句语句l l语句一般格式语句一般格式 do 语句组语句组 while(表达式表达式););l l功能:功能:先执行内嵌语句先执行内嵌语句(循环体),之后计算(循环体),之后计算表达式的值,不为表达式的值,不为0(逻辑真)时,再(逻辑真)时,再执行循环体并
12、判断条件,直到表达式的执行循环体并判断条件,直到表达式的值为值为 0 结束循环,转去执行结束循环,转去执行while下面下面的语句。的语句。2022/10/2516 do-while循环的算法循环的算法 循环体循环体当表达式为真当表达式为真N-S结构图结构图NY循环体循环体表达式非表达式非0?流程图流程图#include stdio.hinclude stdio.hvoid main()void main()int i=1,sum=0;int i=1,sum=0;do do sum=sum+i;sum=sum+i;i+;i+;while(i=100);while(i=100);printf(%
13、dn,sum);printf(%dn,sum);用用用用do-whiledo-while语句语句语句语句求求求求100100个自然数的和个自然数的和个自然数的和个自然数的和 2022/10/2517 void main()int n=1,s=0,x;scanf(%d,&x);printf(s=%dn,s);求:求:流程图流程图n=xn=xs=s+ns=s+nYn加加1开始开始初始化初始化n,s,xn,s,x输入输入x x do do s=s+n;s=s+n;n+;n+;while(n=x);while(n=x);do whiledo whileN输出输出s结束结束2022/10/2518/*e
14、x1-1.C*/void main()int s=0,x;scanf(%d,&x);while(x=10)s=s+x;x+;printf(s=%dn,s);/*ex1.C*/void main()int s=0,x;scanf(%d,&x);do s=s+x;x+;while(x=10);printf(s=%dn,s);例例循环至少循环至少执行一次执行一次循环没有循环没有被执行被执行三、三、whilewhile与与do whiledo while的比较的比较输出输出:s=12输出输出:s=0如输入为如输入为1 1和和1212,两程序各输出情况,两程序各输出情况输入输入12时:时:2022/10
15、/25195.4 for语句语句 l l语句一般格式语句一般格式 for(表达式表达式1;表达式表达式2;表达式表达式3)语句语句 循环初始条件循环初始条件循环初始条件循环初始条件循环控制条件循环控制条件循环控制条件循环控制条件循环体循环体循环体循环体 1 1.求解表达式求解表达式1 1;2.2.求解表达式求解表达式2 2,值为真值为真(非非0 0)执行循环执行循环体,然后体,然后执行第执行第3 3步步;值为假值为假(0 0)则则结束结束循环,循环,转到第转到第5 5步,步,3.3.求解表达式求解表达式3 3;4 4.转回第转回第2 2步步。5.5.循环结束,执行循环结束,执行forfor语句
16、下面的语句语句下面的语句。2022/10/2520for(e1;e2;e3)语句的算法语句的算法N-S结构图结构图for(e1;e2;e3)语句语句NY流程图流程图计算计算e1 语句语句e3e2为真为真?例如:例如:例如:例如:void main()void main()int i,sum;int i,sum;sum=0;sum=0;for(i=1;i=100;i+)for(i=1;i=100;i+)sum=sum+i;sum=sum+i;printf(sum=%dn,sum);printf(sum=%dn,sum);2022/10/2521forfor循环控制语句循环控制语句 for(e1;
17、e2;e3)e1 e1、e2e2、e3e3均可缺均可缺少少for(;n100;n+)缺缺少少e1,n应在循环之前赋初值应在循环之前赋初值 for(n=0;n+)缺缺少少e2,造成死循环造成死循环for(n=0;n100;)缺缺少少e3,n增量应在循环体内进行增量应在循环体内进行for(;)缺缺缺缺少少少少e1,e2,e3 e1,e2,e3,死循环!死循环!死循环!死循环!for(;n100;)缺缺少少e1,e3分号始终不能缺少分号始终不能缺少!讨论讨论可结合跳转语句使用,一般情况下可结合跳转语句使用,一般情况下不不使使用用2022/10/2522forfor循环控制语句循环控制语句for(初值
18、初值;判断判断;增量增量)语句;语句;for(初值初值;判断判断;增量增量)复合语句复合语句;for(初值初值;判断判断;增量增量);2.2.e1e1和和e3e3可是与初值、增量无关的逗号表达式可是与初值、增量无关的逗号表达式for(s=0,n=1;n=100;s=s+n,printf(“%d”,s)n+;for(s=0;n100;s=s+n,n+)printf(“%d”,s);求累加和求累加和n的初值在的初值在for之前之前完成完成增量在增量在for之外完成之外完成forfor语句的形式:语句的形式:2022/10/2523forfor循环控制语句循环控制语句void main()int n
19、=1,s=0,x;scanf(%d,&x);for(;n=x;n+)s=s+n;printf(s=%dn,s);while(n=x)s=s+n;n+;void main()int n,s,x;scanf(%d,&x);for(n=1,s=0;n=x;n+)s=s+n;printf(s=%dn,s);例例缺少缺少e1赋初值赋初值语句语句 2022/10/2524forfor循环控制语句循环控制语句void main()int n,s;for(n=1;n=10;n+=2)printf(n=%dn,n);void main()int n,s;for(n=1;n=10;n+=2);printf(n=%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 循环 结构 程序设计
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内