C语言PPT课件第04章循环控制.ppt
《C语言PPT课件第04章循环控制.ppt》由会员分享,可在线阅读,更多相关《C语言PPT课件第04章循环控制.ppt(103页珍藏版)》请在三一办公上搜索。
1、,循 环 控 制,共 20页 第 2 页,第4章 循 环 控 制,第一节 概述第二节 goto 语句第三节 while 语句第四节 do-while 语句第五节 for 语句第六节 循环的嵌套第七节 几种循环的比较第八节 break和continue 语句第九节 程序举例,共 20页 第 3 页,5-1 循环问题,循环在常中生活中经常遇到,?,上课问题:从第一周到十五周,每周 二上C语言课。这就是一个循环。即每逢周二,就上C。周二 C语言,如果=15周,共 20页 第 4 页,4-1循环语句,问题:C课是从哪一周开始,到哪周结束,也就是说循环是从哪里开始,到哪结束?整个过程为:S1:第一周开始
2、 S2:周二 S3:上C S4:下一周数=15 Y 转到S2 N 课程结束,共 20页 第 5 页,4-1循环语句,S1:第一周开始 S2:周二 S3:上C S4:下一周数=15 Y 转到S2 N 课程结束在这里,S1是循环的开始,S4是控制循环的结束,共 20页 第 6 页,4-1 循环,提出问题2,?,提问:从键盘上输入10个整数并求和,怎么编程?回答:在程序中写入10个scanf()语句。提问:从键盘上输入500个整数并求和,怎么编程?回答:这个,嗯?不会让我写500个.,老师:让我们换一个角度来看待这些问题,以上问题的实质是:将scanf函数重复执行N遍。学生:对!好象是 这么回事.老
3、师:我们可以引出一个概念“循环”,简单而言:循环就是不断反复地执行同一段程序。学生:这就是我们今天要学的新东西?,共 20页 第 7 页,今天要讲的是循环语句,基本语句,C程序的第六条语句:循环语句,共 20页 第 8 页,4-1循环语句,循环 反复执行同一段程序,直到满足一定的条件后才停止执行该段程序。C语言中控制循环的语句:while do-while for 下面我们先讲 while 循环。举一个例子。,共 20页 第 9 页,4-1循环语句,例题1:从键盘上输入10个同学的分数,求平均成绩,怎么编程?分析:1、要有一个存放同学成绩的变量scod,有一个成绩累加的变量sum 还有一个平均
4、值变量aver 2、每个学生的成绩从键盘输入 3、总共要输入和累加十个学生的成绩,也就是要循 环十次,用一个变量K来表示。,共 20页 第 10 页,4-1循环语句,过程:S1:设scod为同学的成绩,sum为成绩的累加,aver为平均 值,K为循环次数控制值。S2:sum=0;表示累加数开始是零 S3:K=1;表示从第一位同学开始 S4:当(K=10)输入一个成绩scod;sum=sum+scod;累加 k=k+1;循环的次数增1 S5:aver=sum/10;,共 20页 第 11 页,4-1循环语句,编程如下:int scod,sum,aver,k;sum=0;/*表示累加数开始是零*/
5、k=1;/*表示从第一位同学开始*/while(k=10)scanf(“%d”,共 20页 第 12 页,4-1循环语句,例2 计算n+n+n+.+n、10个n求和,其算法如下:设SUM为累加数,K为计数器,n=2。S1:n=2;SUM=0(累计数开始为0)K=1(表示从第一个数开始)S2:当 K=10(计算10 个数)(否则转s4)s3:SUM=SUM+n(累加)K=K+1(累计下一个数)S4:打印SUM。,共 20页 第 13 页,4-1循环语句,int sum,k,n;n=2;sum=0;(累计数开始为0)k=1;(表示从第一个数开始)while(k=10)(计算10 个数)sum=su
6、m+n;(累加)k=k+1;(累计下一个数)printf(“n sum=%d”,sum);,共 20页 第 14 页,例3 计算1+2+3+.+10、10个整数求和,,其算法如下:设SUM为累加数,K为计数器。计算 设sum=0,k=1,1+2+3+4+5+6+7+8+9+10 sum=sum+1(+k)第一步 k=k+1 sum=sum+2(+k)k+sum=sum+3 Sum=sum+4 sum=sum+10,共 20页 第 15 页,4-1循环语句,例3 计算 设sum=0,k=1,1+2+3+4+5+6+7+8+9+10 sum=sum+1(+k)第一步 k=k+1 sum=sum+2
7、(+k)k+sum=sum+3 Sum=sum+4 sum=sum+10,共 20页 第 16 页,4-1循环语句,例3 计算1+2+3+.+10、10个整数求和,其算法如下:设SUM为累加数,K为计数器。S1:SUM=0(累计数开始为0)K=1(表示从第一个数开始)S2:当 K=10(计算10 个数)(否则转s4)s3:SUM=SUM+k(累加)K=K+1(累计下一个数)S4:打印SUM。,共 20页 第 17 页,4-1循环语句,int sum,k;sum=0;(累计数开始为0)k=1;(表示从第一个数开始)while(k=10)(计算10 个数)sum=sum+k;(累加)k=k+1;(
8、累计下一个数)printf(“n sum=%d”,sum);,共 20页 第 18 页,程序如下:main()从两个例子看,一个循 int k,sum;环必需有三个值来控制sum=0;k=1;初始值,循环从那里开始while(k=10)终止值,循环在那里结束 sum=sum+k;k=k+1;控制变量必需增值printf(“%d”,sum);,例:计算 1+2+3+4+5+6+7+8+9+10,共 20页 第 19 页,程序如下:main()从两个例子看,一个循 int k,sum;环必需有三个值来控制sum=0;k=1;初始值,循环从那里开始while(k=10)终止值,循环在那里结束 sum
9、=sum+k*(k+1);k=k+1;控制变量必需增值printf(“%d”,sum);,例:计算 1*2+2*3+3*4+.+10*11,共 20页 第 20 页,4-1循环语句,while 循环,称为当型循环。其格式为:while(条件)/*循环体*/.当条件满足时(即条件不为零),反复执行循环体。,共 20页 第 21 页,程序如下:main()从两个例子看,一个循 int k,sum;环必需有三个值来控制sum=0;k=1;初始值,循环从1开始while(k=99)终止值,循环在99结束 sum=sum+k;k=k+2;控制变量必需增值printf(“%d”,sum);,例:计算 1+
10、3+5+7+9+99,共 20页 第 22 页,程序如下:main()从两个例子看,一个循 int k,sum;环必需有三个值来控制sum=0;k=2;初始值,循环从2开始while(k=100)终止值,循环在100结束 sum=sum+k;k=k+2;控制变量必需增值printf(“%d”,sum);,例:计算 2+4+6+8+10+.+100,共 20页 第 23 页,程序如下:main()从两个例子看,一个循 int k,sum,t=1;环必需有三个值来控制sum=0;k=2;初始值,循环从2开始while(k=100)终止值,循环在100结束 sum=sum+t*k;k=k+2;t=-
11、1*t;控制变量必需增值printf(“%d”,sum);,例:计算 2-4+6-8+10-.-100,共 20页 第 24 页,程序如下:main()从两个例子看,一个循 int k,sum,t;环必需有三个值来控制sum=0;t=-1;k=100;初始值,循环从2开始while(k=2)终止值,循环在100结束 sum=sum+k*t;k=k-2;t=t*(-1);控制变量必需增值printf(“%d”,sum);,例:计算 2-4+6-8+10+.-100,共 20页 第 25 页,main()float j,sum;sum=0;j=1;while(j=100)sum=sum+1/j;j
12、=j+1;printf(“n j=%f,sum=%f”,j,sum),计算 1+1/2+1/3+1/4+.+1/99+1/100,共 20页 第 26 页,main()float j,sum;sum=0;j=1;while(j=100)sum=sum+1/j;j=j+1;printf(“n j=%f,sum=%f”,j,sum),计算 1+1/2+1/3+1/4+.+1/99+1/100,共 20页 第 27 页,main()float j,sum;j=1;sum=0;while(j=100)sum=sum+1/j;注意中间项的 j=j+1;计算 printf(“n j=%f,sum=%f”,
13、j,sum),计算 1+1/2+1/3+1/4+.+1/99+1/100,共 20页 第 28 页,main()int t;float j,sum;j=1;sum=0;t=1;while(j=100)sum=sum+t*1/j;j=j+1;t=(-1)*t;printf(“n j=%f,sum=%f”,j,sum),计算 1-1/2+1/3-1/4+.+1/99-1/100,共 20页 第 29 页,main()int t;float j,sum;j=1;sum=0;t=1;t中间项符号 while(j=100)sum=sum+t*1/j;j=j+1;t=t*(-1);中间项符号改变 prin
14、tf(“n j=%f,sum=%f”,j,sum),计算 1-1/2+1/3-1/4+.+1/99-1/100,共 20页 第 30 页,4-1 while语句-实例,while使用注意 1.while(0).由于循环的条件表达式恒等于0,循环体永远也不会执行,是编程者的错误。例:sum=0;k=1;初始值,循环从1开始while(0)条件为假,循环永远不会执行 sum=sum+k;k=k+2;,共 20页 第 31 页,4-1 while语句-实例,while使用注意 2.while(1).由于循环的条件表达式恒等于1,所以不可能通过循环控制条件来结束循环体的执行,称为“死循环”。例:sum
15、=0;k=1;初始值,循环从1开始while(1)条件永远为真,循环不会终止 sum=sum+k;k=k+2;,共 20页 第 32 页,4-1 while语句-实例,while使用注意3.为了保证循环正常运行,应该特别注意:循环控制条件 控制条件的初始状态(初始值)循环体内部对控制条件的影响k=1;初始值,循环从那里开始while(k=10)终止值,循环在那里结束 sum=sum+k;k=k+1;控制变量必需改变,共 20页 第 33 页,4-2while语句-实例,例:分析程序的运行结果#include main()int n=0;while(n3)printf(”n is%dn”,n);
16、printf(”Thats all this program does.n”);结果:程序将不停的打印“n is 0”,直至终止程序无法正常终止的程序,称为“死循环”。结论:在while语句循环体中,一定要有能够对循环控制条件产生影响的语句。避免出现“死循环”现象。,共 20页 第 34 页,4-1循环语句,do-while 循环,称为直到循环。其格式为:do/*循环体*/.while(条件);当条件满足时(即条件不为零),反复执行上面循环体。,共 20页 第 35 页,do-while型 while 型 main()main()int k,sum;int k,sum;sum=0;sum=0;
17、k=1;k=1;do while(k=7)sum=sum+k;sum=sum+k;k=k+1;k=k+1;while(k=7);pintf(“%d”,sum);printf(“%d”,sum);,例:计算 1+2+3+4+5+6+7,共 20页 第 36 页,4-1 do-while语句,例如用do-while 语句求 n.程序如下:main()int k,sum;sum=0;k=1;初始值,循环从1开始 do sum=sum+k;k=k+1;控制变量必需增值 while(k=100);终止值,循环在k=100结束 printf(“%d”,sum);,100,N=1,共 20页 第 37 页,
18、4-1 do-while语句,do-while语句特点 do-while与while的最大区别:do-while语句先执行循环体然后再判断循环控制条件,而while却是先判断条件之后再执行循环体。k=1;k=1;do while(k=7)sum=sum+k;sum=sum+k;k=k+1;k=k+1;while(k=7);pintf(“%d”,sum);,共 20页 第 38 页,4-1 do-while语句,do-while语句特点使用do-while构成的循环,循环体部分至少要执行一次;而采用while和for构成的循环,循环体部分有可能一次也不会执行。k=8;k=8;do while(k
19、=7)sum=sum+k;sum=sum+k;k=k+1;k=k+1;while(k=7);pintf(“%d”,k);执行一次,k=9 一次都不执行,共 20页 第 39 页,4-2 for语句,for结构也是一种当型循环。它把初始值;终止值;步长全放在for条件里。其格式为:for(初始值;终止值;步长)/*循环体*/.当初始值不超过终止值时,反复执行循环体。For循环与while循环可以互换。,共 20页 第 40 页,while型 for 型 main()main()int I,p;int I,p;p=0;I=1 p=0;while(I=7)for(I=1;I=7;I+)p=p+I;p
20、=p+I;i=i+1;printf(“%d”,p);printf(“%d”,p);,例:计算 1+2+3+4+5+6+7,共 20页 第 41 页,4-2 for语句,for语句的变化形式for语句中的三个表达式中的任意一个都是可以省略的,但是分号不能省略。1.可以将初始值放在外面:main()int I,p;p=0;I=1;for(;I=7;I+)p=p+I;分号不能省略。printf(“%d”,p);,共 20页 第 42 页,4-2 for语句,2.可以将表达式3放入循环体里,main()int I,p;p=0;for(I=1;I=7;)p=p+I;I=I+1;printf(“%d”,p
21、);,共 20页 第 43 页,4-2 for语句,3.省略表达式1和表达式3,则:for(;表达式2;)p=0;k=1;for(;k=7;)p=p+k;k=k+1;就等同于:while(表达式)据此结论:所有用while语句实现的循环都可以用for语句实现。,共 20页 第 44 页,4-2 for语句,4.表达式1、2、3全省略,则:for(;)就等同于:while(1)死循环。,共 20页 第 45 页,4-3 循环嵌套,一个循环体内又包含另一个完整的循环结构,称为循环的嵌套,内嵌的循环中还可以嵌套,这就是多层循环。三种循环(while,do-while,for)可以互相嵌套如:whil
22、e()for(;).while()while().,共 20页 第 46 页,4-3 典型非数值(图型)问题-例1,例1:打印边长为m的正方型要求:从键盘输入m值,输出m行每行m个*号。例:输入m=4,输出的图形如下:*算法分析与设计:1.输入 m,2.重复打印 m 行,每行打印 m 个*;加细:1.输入 m;2.for(k=1;k=m;k+)打印一行中的 m 个*;,共 20页 第 47 页,4-3 典型非数值(图型)问题-例1,加细:1.输入m;2.for(k=1;k=m;k+)打印 m 个*;换新行;加细:1.输入m;2.for(k=1;k=m;k+)for(j=1;j=m;j+)pri
23、ntf(”*”);printf(”n”);,共 20页 第 48 页,4-3 典型非数值(图型)问题-例1,整理,得到程序如下:#include main()int k,m,j;scanf(”%d”,j+)/*打印的m个*号*/printf(”*”);printf(”n”);,共 20页 第 49 页,4-3 循环语句小结,循环语句可以嵌套,循环可以并列,但不能交叉。对 对 错,共 20页 第 50 页,4-3循环语句小结,为了保证循环体正常运行,应该特别注意:循环控制条件 控制条件的初始状态(初始值)循环体内部对控制条件的影响以上三个方面相互配合,相互影响,共同完成循环控制,共 20页 第
24、51 页,4-3 转移语句,转移语句的作用 改变程序的运行流程。C语言转移语句 break continue goto return,共 20页 第 52 页,4-3 break语句,格式break;break语句的功能 1.在switch语句中结束case子句,使控制转到switch语句之外。2.在循环语句的循环体中使用,结束循环过程,使控制转移到整个循环语句之外的下一条语句处。,共 20页 第 53 页,4-3 break语句-实例,例:求素数,2,3,5,7,9,11,25 整数n?素数,用k=2 n/2的数除n,如果所有的k都有 n%k!=0,则 n是素数。main()int k,n,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 PPT 课件 04 循环 控制

链接地址:https://www.31ppt.com/p-6503738.html