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