C语言程序设计循环结构程序设计.pptx
《C语言程序设计循环结构程序设计.pptx》由会员分享,可在线阅读,更多相关《C语言程序设计循环结构程序设计.pptx(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/2/211什么是循环?什么是循环?为什么要使用循环?为什么要使用循环?5.1 5.1 循环的基本概念l循环是有规律的重复操作。循环是有规律的重复操作。将复杂问题将复杂问题分解分解为简单的操作过程,程序只对简单过程描述,为简单的操作过程,程序只对简单过程描述,这些过程的多次这些过程的多次重复重复就可完成对问题的求解。就可完成对问题的求解。重复的频繁性决定了循环在程序设计中必不重复的频繁性决定了循环在程序设计中必不可少!可少!一、循环问题问题问题1 1:问题问题2 2:求学生平均成绩求学生平均成绩 分数相加后除以课分数相加后除以课分数相加后除以课分数相加后除以课程程程程数数数数做做999
2、9次加法次加法问题问题3 3:找出数找出数找出数找出数集集集集x x x x中能同时被中能同时被中能同时被中能同时被3 3 3 3和和和和7 7 7 7整除的数整除的数整除的数整除的数 找数找数问题分解问题分解循环控制循环控制第1页/共41页2023/2/2125.1 5.1 循环的基本概念l while循环循环(5.2节节)l do while循环循环(5.3节节)l for循环循环(5.4节节)l if-goto 循环循环(一般不用)一般不用)难点:难点:C提供四种循环控制语句:提供四种循环控制语句:第2页/共41页2023/2/2135.15.1循环的基本概念(续)二、循环结构循环结构有
3、两种形式:循环结构有两种形式:l当型循环结构当型循环结构l直到型循环结构直到型循环结构循环体N条件Y当型循环当型循环直到型循环直到型循环条件NY循环体先判断后循环先判断后循环 先循环后判断先循环后判断入口出口循环体中是一个过程,该过程的复杂程度取决于问题及对问题的分解第3页/共41页2023/2/2145.1 5.1 循环的基本概念(续)循环体N条件Yl当型循环当型循环条件条件 循环循环 次数次数Y循环体?Y Y 执行 1Y Y 执行 3Y Y 执行 2N N 结束结束 循环体Y?循环体Y?N3次在循环入口处判断在循环入口处判断当条件为真时执行循环当条件为真时执行循环第4页/共41页2023/
4、2/2155.15.1循环的基本概念(完)l直到型循环直到型循环在循环出口处判断,当条在循环出口处判断,当条件为真时继续执行循环,件为真时继续执行循环,直到条件为假时为止。直到条件为假时为止。条件NY循环体条件条件 循环循环 次数次数执行 1Y 执行 3Y 执行 2N N 结束 3次Y条件循环体Y条件循环体Y条件循环体Y 执行 4条件循环体N4 4次第5页/共41页2023/2/2165.2 while循环控制 语句一般格式 while(表达式表达式)语句组语句组 l l一般为一般为关系关系表达式表达式或或逻辑逻辑表达式,也表达式,也可以是可以是C C语言其他类语言其他类型的合法表达式型的合法
5、表达式 l l用来控制循环体是用来控制循环体是否被执行否被执行l l称为称为内嵌语句内嵌语句,可,可以是基本语句、控以是基本语句、控制语句,也可以是制语句,也可以是复合语句复合语句l l是循环重复执行的是循环重复执行的部分部分 第6页/共41页2023/2/217l l语句一般格式语句一般格式 while(表达式)语句组 功能:计算“表达式”的值,为非0(逻辑真)时,重复执行内嵌语句,每执行一次,就判断一次表达式的值,直到表达式的值为0 时结束循环,转去执行while后面的语句。第7页/共41页2023/2/218当表达式为真 语句N-SN-S结构图结构图N NY Y流程图流程图表 达 式 非
6、0?语句循环控制条件循环控制条件循环体循环体l l语句一般格式语句一般格式 while(表达式)语句组 第8页/共41页2023/2/219例如:【例5.1】编写程序,求100个自然数的和即:s=1+2+3+s=1+2+3+100+100 思路:寻找加数与求和的规律 加数i i从1变到100,每循环一次,使i增1,直到i的值超过100。i i的初值初值设为1。求和设变量 sum sum 存放和,循环求sum=sum+isum=sum+i,直至i超过100。第9页/共41页2023/2/2110算法和程序:#include stdio.hvoid main()int i,sum;i=1;sum=
7、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+输出sum第10页/共41页2023/2/2111注意:如果如果whilewhile的的(表达式表达式)值为值为0 0,则循环体一次也不执行,则循环体一次也不执行(例如当i的初值=101)。在循环体中必须有使循环趋向结束的操作,否则循环将无限进行(在循环体中必须有使循环趋向结束的操作,否则循环将无限进行(死循环)。)。在循环体中,语句的先后位置必须符合逻辑
8、,否则会影响运算结果。在循环体中,语句的先后位置必须符合逻辑,否则会影响运算结果。思考程序段的输出?思考程序段的输出?i=1;sum=0;while(i=100)i+;sum=sum+i;运行后,输出:运行后,输出:sum=5150sum=5150原因是什么?原因是什么?第11页/共41页2023/2/2112注意(续):总结:为了保证循环正常运行,应该特别注意:循环控制条件的描述 控制条件的初始状态(初始值)控制条件的初始状态(初始值)循环体内部对控制条件的影响循环体内部对控制条件的影响第12页/共41页2023/2/21135.3 do-while语句语句一般格式 do 语句组语句组 wh
9、ile(表达式表达式);功能:先执行内嵌语句先执行内嵌语句(循环体),之后计算表达式的值,不为0(逻辑真)时,再执行循环体并判断条件,直到表达式的值为 0 结束循环,转去执行while下面的语句。第13页/共41页2023/2/2114 do-while循环的算法 循环体当表达式为真N-S结构图NY循环体表达式非0?流程图#include stdio.hvoid main()int i=1,sum=0;do sum=sum+i;i+;while(i=100);printf(%dn,sum);用用do-whiledo-while语句语句求求100100个自然数的和个自然数的和 第14页/共41页
10、2023/2/2115 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结束第15页/共41页2023/2/2116/*ex1-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
11、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时:第16页/共41页2023/2/21175.4 for语句 语句一般格式 for(表达式1;表达式2;表达式3)语句 循环初始条件循环初始条件循环控制条件循环控制条件循环体循环体 1 1.求解表达式1 1;2.2.求解表达式2 2,值为真(非0
12、 0)执行循环体,然后执行第3 3步;值为假(0 0)则结束循环,转到第5 5步,3.3.求解表达式3 3;4 4.转回第2 2步。5.5.循环结束,执行forfor语句下面的语句。第17页/共41页2023/2/2118for(e1;e2;e3)语句的算法N-S结构图结构图for(e1;e2;e3)语句语句NY流程图流程图计算e1 语句e3e2为真?例如:void main()int i,sum;sum=0;for(i=1;i=100;i+)sum=sum+i;printf(sum=%dn,sum);第18页/共41页2023/2/2119forfor循环控制语句 for(e1;e2;e3)
13、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分号始终不能缺少!讨论讨论可结合跳转语句使用,一般情况下可结合跳转语句使用,一般情况下不不使使用用第19页/共41页2023/2/2120forfor循环控制语句for(初值;判断;增量)语句;for(初值;判断;增量)复合语句;for(初值;判断;增量);2.2.e1e1和e3e3可是与初值
14、、增量无关的逗号表达式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语句的形式:第20页/共41页2023/2/2121forfor循环控制语句void main()int n=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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 循环 结构 程序设计
限制150内