第6章循环结构.ppt
《第6章循环结构.ppt》由会员分享,可在线阅读,更多相关《第6章循环结构.ppt(81页珍藏版)》请在课桌文档上搜索。
1、本章主要内容概述用while语句实现循环用dowhile语句实现循环用for语句实现循环循环的嵌套几种循环语句的比较break语句和continue语句程序举例,第六章 循环控制,6.1 概述,循环结构:程序设计中,经常需要重复相同的计算或处理过程。例如:全班有50个学生,统计各学生三 门课的平均成绩。,scanf(“%f,%f,%f”,输入学生1的三门课成绩,并计算平均值后输出,scanf(“%f,%f,%f”,输入学生2的三门课成绩,并计算平均值后输出,要对50个学生进行相同操作,重复50次,循环结构两大要素:循环体 可重复执行的语句或语句组循环条件 条件表达式,指出什么时候执行循环体,什
2、么时候结束循环。,循环体语句,条件表达式,循环体语句,条件表达式,真,假,while的后续语句,1形式:while(条件表达式)循环体语句,6.3 while语句,例0:用 while 语句实现在屏幕上输出10行“I love programming!”。,分析:设计变量并赋初值 用int型变量i表示行数,初值为1设计循环条件 i10设计循环体 printf(“I love programming!n”);i+;用循环语句实现,void main()int i;i=1;while(i=10)printf(“I love programming!n”);i+;,条件表达式必须加括号,括号后不能有
3、;,循环体包含多条语句时,不能少,例1:用 while 语句实现 1+2+3+100,分析:设计变量并赋初值 1.用int型变量sum存放和,初值为0 2.用int型变量i表示累加变量,初值为1设计循环体 sum=sum+i;i+;设计循环条件 i100用循环语句实现,程序流程图:,开始,初始化 sum=0;i=1;,判断:i=100?,sum=sum+i;,i=i+1;,输出 sum,结束,真,假,真,sum=sum+i;,i=i+1;,判断:i=100?,#include void main()int i,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(
4、%d,sum);,循环结束后,i的值是多少?,101,使用说明:1)在while的循环体中一定要有使循环趋于结束的语句;否则将形成死循环;2)注意循环操作的范围、花括号、分号的使用;3)注意给循环变量赋初值的位置及初值的正确性;,#include void main()int sum=0,i=1;while(i=100)sum=sum+i;i+;printf(sum%dn,sum);,程序:,i+;sum+=i;,i=0;,100,例 2求1到100之间的奇数之和,偶数之积。,sum=0 mul=1,i=100,i能整除2?,yes,no,mul=mul*i,sum=sum+i,输出sum,m
5、ul,i+;,i=1,main()double mul=1;int i=1,sum=0;while(i=100)if(i%2=0)mul=mul*i;else sum=sum+i;i+;printf(sum=%dn,sum);printf(mul=%en,mul);,main()int i,k1,k2,k;i=1;k1=1;k2=2;while(i=5)k=k1+k2;k1=k2;k2=k;i+;printf(%5d,k);,例 3读程序练习:,3 5 8 13 21,1形式:do 语句 while(表达式);,6.4 do-while语句,循环体语句,条件表达式,循环体语句,条件表达式,真,
6、假,例 1用do_while 语句实现 1+2+3+100,分析:设计变量并赋初值 1.用int型变量sum存放和,初值为0 2.用int型变量i表示累加变量,初值为1设计循环体 sum=sum+i;i+;设计循环条件 i100用循环语句实现,void main()int i,sum=0;i=1;do sum=sum+i;i+;while(i=100);printf(sum=%d,sum);,i+;sum+=i;,i=0;,100,例2:计算表达式,12 23 34 n(n+1),1 1 1 1,+,+,+,.+,+.,的值,直到某一项的值小于10-3次方为止。,分析:1.累加项 t=2.循环
7、条件为:t10-3,i(i+1),1,main()float sum=0,t;int i=1;do t=1.0/(i*(i+1);sum=sum+t;i+;while(t=1e-3);printf(sum=%fn,sum);,while循环与do_while循环小结:1.循环体内必须有使循环趋于终止的条件,while(i=100)sum=sum+i;i+;,do sum=sum+i;i+;while(i=100);,2.注意循环初值与循环条件,i=1;while(i=100)sum=sum+i;i+;,i=0;while(i100)i+;sum=sum+i;,3.do_while 循环的循环体
8、至少执行一 次,while循环的循环体可能一次 也不执行。,4.在循环体至少执行一次的前提下,do_while与while 循环等价。,例3:求 n!,main()int i=1,n;double m=1;scanf(%d,main()int i=1,n;double m=1;scanf(%d,1.一般形式:for(表达式1;表达式2;表达式3)语句,for 的循环体,括号不可少,分号不可少,6.5 for语句,求表达式1,判表达式2,语句,求表达式3,for语句的下一个语句,真,非0,假,值为0,for语句执行过程示意,for(表达式1;表达式2;表达式3)语句,表达式1只执行1次;表达式2
9、、3和内嵌语句执行多次,通常:表达式1用于对循环变量赋初值;表达式2给出循环条件;表达式3使循环变量增值;,循环类型:当型,for语句等价于下列语句:表达式1;while(表达式2)语句;表达式3;,例:#include void main()int i,sum=0;for(i=1;i=100;i+)sum=sum+i;printf(“sum=%dn”,sum);,例:for(i=0;i=10;i=i+2)printf(“%3d”,i);printf(“ni=%d”,i);运行结果:0 2 4 6 8 10 i=12例:for(i=10;i;i-)printf(“%d,”,i);运行结果:10
10、,9,8,7,6,5,4,3,2,1,例:for(i=1,j=6;ij;i+,j-)printf(“%d*%d=%dn”,i,j,i*j);运行结果:1*6=6 2*5=10 3*4=12,3.说明:1)表达式1可省略,但分号不能省;如:int i=1,sum=0;for(;i=100;i+)sum=sum+i;2)若表达式2省略,循环条件永远为真;如:for(i=1;i+)printf(“%d,”,i);,死循环,3)表达式3也可省略,但应设法保证循环正常结束;如:for(i=1;i=100;)sum=sum+i;i+;4)可只给循环条件;i=1;for(;i=100;)sum=sum+i;
11、i+;,5)三个表达式都可省;for(;)相当于 while(1)6)表达式1和表达式3可以是逗号表达式;如:for(i=1,sum=0;i=100;i+)sum=sum+i;,7)表达式2一般为关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值为非零就执行循环体。如:for(;(c=getchar()!=n;)printf(%c,c);注:尽量避免用实型变量控制循环次数。,在循环体内尽量避免改变循环变量的值,否则将难以预知循环次数。,例:void main()int i;for(i=1;i=20;i+)i=i+5;printf(%5d,i);printf(n);,运行结果为:
12、6 12 18 24,修改了循环变量,概念:一个循环体内又包含另一个完整的循环结构。,6.6 循环的嵌套,例:do-while嵌套 例:do-while、for混合嵌套 do do do for(e1;e2;e3)while(e1);while(e);while(e);,错误的循环交叉形式:,说明:1)三种循环可以互相嵌套 2)嵌套可以是多层的,*,main()int i,j;for(i=1;i=5;i+)for(j=1;j=5;j+)printf(*);printf(n);,例:在屏幕上输出一个由5*5星号组成的方形。,四种循环一般可互相代替循环次数已知时,常用for 循环次数未知时,常用w
13、hile或do-while。3.while和do-while循环的循环体中应包括使循环趋于结束的语句。4.for的功能强于while和do-while 5.循环变量初始化的位置不同。6.while和for循环是当型循环,do-while循环是直到型循环,6.7 几种循环的比较,一、break语句 作用:1)从循环体内跳出,即提前结束循环,接着执行循环下面的语句;2)break语句只能 用于循环语句和 switch 语句。,6.8 break语句和continue语句,#include void main()int r;float area;for(r=1;r100)break;printf(“
14、r=%d,area=%-7.2fn”,r,area);printf(“r=%d”,r);,计算半径为1到10的各圆面积,直到面积大于100为止。,注意:在循环中使用了break语句后,循环语句的结束可能有两种:1.正常结束(正常出口);由于循环条件表达式为假2.非正常结束(异常出口):由break语句引起。,使用说明:1)内循环中的break仅跳出内循环结构;,if(e)break;,2)被循环语句嵌套的switch中出现的break,仅跳出switch;,switch(e)break;,二、continue 语句作用:结束本次循环,即跳过循环体中语句中下面尚未执行的语句,接着执行下一次是否执
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 结构

链接地址:https://www.desk33.com/p-750215.html