循环体程序设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《循环体程序设计课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环体 程序设计 课件
- 资源描述:
-
1、第1页,共51页。提出问题提出问题提问:提问:打印打印10行行“*”,怎么编程,怎么编程?回答:回答:写写10个个printf(“*”);语句。语句。提问:提问:打印打印500行,怎么编程?行,怎么编程?回答:回答:这个,嗯这个,嗯?不会让我写不会让我写500个个.注意:注意:让我们换一个角度来看待这些问题,让我们换一个角度来看待这些问题,以上问题实质是:将以上问题实质是:将printfprintf函数重复执行函数重复执行N N遍。遍。printf(“*”);2第2页,共51页。循环循环 反复执行同一段程序,直到满足一反复执行同一段程序,直到满足一定的条件后才停止执行该段程序。定的条件后才停止
2、执行该段程序。C语言中控制循环的语句:语言中控制循环的语句:while do-while do-while for for3第3页,共51页。while语句格式语句格式while(while(表达式表达式 )语句语句;说明:语句说明:语句部分可以是部分可以是简单语句简单语句,也可,也可以是以是复合语句复合语句。whilewhile语句的执行流程语句的执行流程表达式表达式?执行语句语句成立成立不成立不成立执行while循环之后的语句循环控制条件循环控制条件循环体循环体4第4页,共51页。例例:从键盘输入从键盘输入1010个整数,求这个整数,求这1010个整数的和。个整数的和。#include#i
3、nclude main()main()int count,num,total;int count,num,total;/*count:count:计数器,计数器,num:num:输入的整数输入的整数 */count=0;count=0;total=0;total=0;/*total:total:存放累加和存放累加和 */while while(count10count10)/*循环控制条件循环控制条件 */count+;count+;/*循环体循环体 */printf(Enter the No.%d=,count);printf(Enter the No.%d=,count);scanf(%d
4、,&num);scanf(%d,&num);total+=num;total+=num;/*计算累加和计算累加和 */printf(Total=%dn,total);printf(Total=%dn,total);5第5页,共51页。例:例:分析程序的运行结果分析程序的运行结果#include#include main()main()int n=0;int n=0;while(n3)while(n3)printf(”n is%dn”,n);printf(”n is%dn”,n);n+;n+;printf(”Thats all this program printf(”Thats all thi
5、s program does.n”);does.n”);结果:结果:程序将不停的打印程序将不停的打印“n is 0”,直至终止程序,直至终止程序无法正常终止的程序,称为无法正常终止的程序,称为“死循环死循环”。结论:结论:在在while语句语句循环体循环体中,一定要有能够中,一定要有能够对循环控制条件产对循环控制条件产生影响的语句生影响的语句。避免出现。避免出现“死循环死循环”现象。现象。6第6页,共51页。例例1:分析下列程序段分析下列程序段 index=1;index=1;while(while(index index 5)5)printf(”Good morning!n”);printf
6、(”Good morning!n”);分析:分析:程序段将无限制打印字符串。因为循环中没有任何语句可以程序段将无限制打印字符串。因为循环中没有任何语句可以改变循环控制变量改变循环控制变量index的初值的初值1例例2:分析下列程序段分析下列程序段 index=1;index=1;while(while(-index index 5)5)printf(”Good morning!n”);printf(”Good morning!n”);分析:分析:仍有问题,程序改变了仍有问题,程序改变了index的值,但方向错了。的值,但方向错了。在在index达到系统能够处理的最大负数时,将会产生下溢而达到系
7、统能够处理的最大负数时,将会产生下溢而终止程序。终止程序。结论:结论:循环体中必须有能够使循环循环体中必须有能够使循环正常停止正常停止的条件。的条件。7第7页,共51页。【例【例6.16.1】求】求1001nnmain()int i,sum0;i=1;while(i100)sum=sum+i;i=i+1;printf(“d”,sum);8第8页,共51页。【例【例6.26.2】求前】求前n n个数的平方的和:个数的平方的和:n1i2i根据上例写出程序如下:main()int i=1,sum=0,n;scanf(“%d”,&n);while(i=n)sum=sum+i*i;i+;printf(“
8、i=%d,n=%d,sum=%dn”,i,n,sum);9第9页,共51页。该例也可以写成如下:该例也可以写成如下:main()int i=1,sum0,n;scanf(“%d”,&n);while(n)sum=sum+n*n;n-;printf(“i=%d,n=%d,sum=%dn”,i,n,sum);10第10页,共51页。l【例【例6.36.3】将输入的字符原样输出,以】将输入的字符原样输出,以“#”号结束。号结束。#include main()char c;c=getchar();while(c!=#)putchar(c);c=getchar();11第11页,共51页。上述程序也可以
9、写为:上述程序也可以写为:#include“stdio.h”main()char c;while(c=getchar()!=#)putchar(c);12第12页,共51页。【例【例6.46.4】统计从键盘输入的以】统计从键盘输入的以nn结束的字符中英文字母结束的字符中英文字母的个数。的个数。#include main()int n=0;char c;while(c=getchar()!=n)if(c=a&c=A&c=Z)n+;printf(%dn,n);Ab2!Ab2!*ABAB 4 413第13页,共51页。while使用注意使用注意 1.while(1.while(0 0).).由于循环
10、的条件表达式恒等于由于循环的条件表达式恒等于0 0,循环体永远也不会执行。循环体永远也不会执行。2.while(2.while(1 1).).由于循环的条件表达式恒等于由于循环的条件表达式恒等于1 1,所以不可能通过循环控制条件来结束循环体的执行,所以不可能通过循环控制条件来结束循环体的执行,称为称为“死循环死循环”。3.3.为了保证循环正常运行,应该特别注意:为了保证循环正常运行,应该特别注意:循环控制条件循环控制条件 控制条件的初始状态(初始值)控制条件的初始状态(初始值)循环体内部对控制条件的影响循环体内部对控制条件的影响14第14页,共51页。do-while语句格式语句格式 dodo
11、 语句语句 while (while (表达式表达式 );do-whiledo-while语句的执行流程语句的执行流程表达式表达式?执行语句语句成立成立不成立不成立执行while子句之后的语句循环控制条件循环控制条件循环体循环体15第15页,共51页。do-while语句特点语句特点do-whiledo-while与与whilewhile的最大区别:的最大区别:do-whiledo-while语句语句先执行循环体先执行循环体然后然后再判断再判断循环循环控制条件控制条件,而,而whilewhile却是先判断条件之后再执却是先判断条件之后再执行循环体。行循环体。使用使用do-whiledo-whi
12、le构成的循环,循环体构成的循环,循环体至少要执至少要执行一次行一次;而采用;而采用whilewhile构成的循环,循环体有构成的循环,循环体有可能一次也不会执行。可能一次也不会执行。16第16页,共51页。【例【例6.66.6】用】用do-whiledo-while语句求语句求1001nnmain()int i,sum=0;i=1;do sum=sum+i;i+;while(i=100);printf(“%d”,sum);17第17页,共51页。/*ex4-11-1.cex4-11-1.c*/#include#include main()main()int i,sum=0;int i,sum
13、=0;scanf(%d,&i);scanf(%d,&i);do do sum+=i;sum+=i;i+;i+;while(i=10);while(i=10);printf(“sum=%d,sum);printf(“sum=%d,sum);/*ex4-11-2.c ex4-11-2.c*/#include#include main()main()int i,sum=0;int i,sum=0;scanf(%d,&i);scanf(%d,&i);while(i=10)while(i=10)sum+=i;sum+=i;i+;i+;printf(“sum=%d,sum);printf(“sum=%d,
14、sum);1 sum=55sum=551 sum=55sum=5511 sum=11sum=1111 sum=0sum=018第18页,共51页。【例【例6.86.8】输入一个整数,计算它的位数】输入一个整数,计算它的位数.并反向输并反向输出出.main()long num;int count=0;printf(“输入一个整数:”);scanf(“%ld”,&num);do printf(“%d”,num%10);num=num/10;count+;while(num);printf(“该整数是%d 位数.”,count);19第19页,共51页。for语句格式语句格式for(for(表达式表
15、达式1 1;表达式表达式2 2;表达式表达式3 3)语句;语句;forfor语句的执行流程语句的执行流程循环初始条件循环初始条件循环控制条件循环控制条件表达式表达式2?执行语句语句成立成立不成立不成立执行for循环之后的语句执行表达式表达式3执行表达式表达式1循环体循环体forfor语句等价于下列语句:语句等价于下列语句:表达式表达式1 1;while while(表达式表达式2 2)语句语句;表达式表达式3 3;20第20页,共51页。例:例:求一个数的阶乘。求一个数的阶乘。#include#include main()main()long int jc=1;long int jc=1;in
16、t i,n;int i,n;scanf(scanf(“%d%d”,&n);,&n);forfor (i=1i=1;i=ni=n;i+i+)jc=jc jc=jc*i;i;printf(%d!=%ldn,n,jc);printf(%d!=%ldn,n,jc);for语句最常用的形式for(初值;控制条件;增量)语句;3 3 3!=6=621第21页,共51页。forfor语句的变化形式语句的变化形式forfor语句中的三个表达式中的任意一个都是可以省略的,语句中的三个表达式中的任意一个都是可以省略的,但是但是分号分号不能省略。不能省略。1.1.省略表达式省略表达式2 2,则:,则:forfor(
17、表达式(表达式1 1;表达式;表达式3 3)就形成了一个就形成了一个死循环死循环。2.2.省略表达式省略表达式1 1和表达式和表达式3 3,则:,则:forfor(;表达式(;表达式2 2;);)就等同于:就等同于:whilewhile(表达式表达式 )据此结论:所有用据此结论:所有用whilewhile语句实现的循环都可以用语句实现的循环都可以用forfor语语句实现。句实现。3.3.表达式表达式1 1、2 2、3 3全省略全省略,则:,则:forfor (;)(;)就等同于:就等同于:whilewhile (1)(1)22第22页,共51页。【例【例6.96.9】输入】输入2020个个0
18、09 9的数字字符,计算有多少奇数,偶数和零。的数字字符,计算有多少奇数,偶数和零。#define M 20main()int i,k,n1=0,n2=0,n3=0;char ch;printf(“输入数字字符输入数字字符20个:个:n”);for(k=1;k=M;k+)scanf(“%c”,&ch);i=ch-0;if(i=0)n3+;/*零零*/else if(i%2=0)n1+;/*偶数偶数*/else n2+;/*奇数奇数*/printf(“有有%2d 个偶数个偶数,%2d 个奇数个奇数,%2d 个零个零”,n1,n2,n3);23第23页,共51页。外层循环可包含两个以上内循环,但不
展开阅读全文