谢丽聪老师C语言-6循环控制-2009演示课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《谢丽聪老师C语言-6循环控制-2009演示课件.ppt》由会员分享,可在线阅读,更多相关《谢丽聪老师C语言-6循环控制-2009演示课件.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章 循环控制6.16.1 概述概述6.26.2 gotogoto语句以及用语句以及用gotogoto语句构成循环语句构成循环6.36.3 whilewhile语句和语句和do-whiledo-while语句语句6.46.4 forfor语句语句6.56.5 循环的嵌套循环的嵌套6.66.6 breakbreak和和continuecontinue语句语句1 16.1 6.1 循环控制概述循环控制概述 循循循循环环环环结结结结构构构构的的的的特特特特点点点点:在在在在给给给给定定定定条条条条件件件件成成成成立立立立时时时时,反反反反复复复复执执执执行行行行某某某某程程程程序序序序段段段段,直
2、直直直到条件不成立为止。到条件不成立为止。到条件不成立为止。到条件不成立为止。语言提供的循环结构类型如下:语言提供的循环结构类型如下:语言提供的循环结构类型如下:语言提供的循环结构类型如下:1 1)用)用)用)用gotogoto语句和语句和语句和语句和if if语句构成循环;语句构成循环;语句构成循环;语句构成循环;2 2)用)用)用)用whilewhile语句;语句;语句;语句;3 3)用)用)用)用do-whiledo-while语句;语句;语句;语句;4 4)用)用)用)用forfor语句;语句;语句;语句;循环条件循环条件循环体循环体2 26.2 goto6.2 goto 语句以及用语
3、句以及用goto goto 语句构成循环语句构成循环6.2.1形式:形式:gotogoto语句标号;语句标号;语句标号;语句标号;6.2.2功功能能:一一一一进进进进入入入入执执执执行行行行gotogoto语语语语句句句句、立立立立即即即即转转转转向向向向去去去去执行其后面标号所指示的语句执行其后面标号所指示的语句执行其后面标号所指示的语句执行其后面标号所指示的语句gotojump;loop:gotojump;loop:语句语句语句语句1 1语句语句语句语句11语句语句语句语句2 2语句语句语句语句22语句语句语句语句nn语句语句语句语句n njump:jump:语句语句语句语句n+1n+1g
4、otoloop;gotoloop;用标识符表示用标识符表示用标识符表示用标识符表示分号分号分号分号冒号冒号冒号冒号冒号冒号冒号冒号3 36.2.3注注意意:结结构构化化程程序序设设计计方方法法主主张张限限制制使使用用goto语语句句,一一般般只只在在下下面面两两种种结结构构中中表示循环表示循环一、一、loop:if(表达式表达式)语句语句gotoloop;表达式值为零时,立即停止循环表达式值为零时,立即停止循环二、二、loop:语句语句if(!表达式表达式)gotoloop;表达式值非零时,立即停止循环表达式值非零时,立即停止循环 语句语句当表达式值当表达式值非零非零语句语句直到表达式值直到表
5、达式值为零为零4 4例例:用用goto语句和语句和if语句构成循环。语句构成循环。例例用goto语句和if语句构成循环。voidmain()inti,sum=0;i=1;loop:if(i=100)sum=sum+i;i+;gotoloop;printf(%dn,sum);运行结果:运行结果:5050i=101i=1015 5形式:形式:while(表达式表达式)语句语句表达式值为零时,立即停止循环表达式值为零时,立即停止循环 形式:形式:do语句语句while(表达式表达式);表达式值为零时,立即停止表达式值为零时,立即停止循环,循环,至少执行一次循环语句至少执行一次循环语句语句语句当表达式
6、值当表达式值非零非零非零非零语句语句直到表达式值直到表达式值为零为零为零为零6.36.3 while while 和和do while do while 语句语句分号分号分号分号6 6while(表达式表达式)do语句语句while(表达式表达式);7 7例例1.写出下面程序的运行结果写出下面程序的运行结果(1)voidmain()(1)voidmain()inti=1;inti=1;while(i=3)while(i=3)printf(”%dn”,i);i+;printf(”%dn”,i);i+;(2)voidmain()(2)voidmain()inti=1;inti=1;while(i=
7、3)while(i=10)k=0;if(sum=10)k=0;while(k=1)while(k=1);printf(”sum=%dn”,sum);printf(”sum=%dn”,sum);改为改为while(k=1)死循环死循环死循环死循环sumsumn n0 01 11 12 23 33 36 64 41010结果结果结果结果:sum=10sum=109 9例例2用用while语句和语句和do-while语句求语句求传统流程图表示算法传统流程图表示算法 不成立不成立不成立不成立成立成立成立成立成立成立成立成立不成立不成立不成立不成立1010N-S图表示算法1001001001001111
8、voidmain()voidmain()inti,sum=0;inti,sum=0;i=1;i=1;运行结果:运行结果:运行结果:运行结果:50505050while(i=100)while(i=100)sum+=i;i+;sum+=i;i+;printf(%dn,sum);printf(%dn,sum);voidvoid main()main()inti,sum=0;inti,sum=0;i=1;i=1;dosum+=i;i+;dosum+=i;i+;while(i=100);while(i=100);printf(%dn,sum);printf(%dn,sum);注意:注意:i和和sum的
9、初值的初值i的终值的终值1212例例3统计从键盘输入一行字符的个数。统计从键盘输入一行字符的个数。#includevoidmain()intn=0;printf(inputastring:n);while(getchar()!=n)n+;printf(%d,n);只要从键盘输入只要从键盘输入的字符不是回车的字符不是回车就继续循环就继续循环完成对输入字完成对输入字符个数计数。符个数计数。输入:输入:ascdf 输出:输出:51313例例4.计算计算p=123nvoidmain()inti,n;longp;scanf(”%d”,&n);i=1;p=1;while(i=n)p*=i;i+;print
10、f(”p=%ldn”,p);不用不用不用不用longlong会溢出会溢出会溢出会溢出重复到重复到重复到重复到n n次次次次,也可以写成也可以写成也可以写成也可以写成in+1i0)voidmain()inti,n;longs,t;scanf(”%d”,&n);i=1;t=1;s=0;dot*=i;s+=t;i+;while(i=n);printf(”s=%ldn”,s);保证达保证达保证达保证达到计算到计算到计算到计算n n次次次次 t=1123t=1123S=1+12+123+S=1+12+123+1515例例6.计计算算下下面面二二十十个个数数的的和和:13.8、-65、68.9、342.9
11、87voidmain()inti=1;floatx,sum=0;while(i=20)scanf(”%f”,&x);sum+=x;i+;printf(”sum=%fn”,sum);注:注:执行程序时输入执行程序时输入执行程序时输入执行程序时输入13.86568.9342.98713.86568.9342.987 i=40i=40i+=2i+=21616whilewhile语语语语句句句句中中中中的的的的表表表表达达达达式式式式一一一一般般般般是是是是关关关关系系系系表表表表达达达达或或或或逻逻逻逻辑辑辑辑表表表表达达达达式式式式,也也也也可可可可以以以以是是是是其其其其它它它它表表表表达达达达
12、式式式式,只只只只要要要要表表表表达达达达式式式式的的的的值值值值为为为为真真真真(非非非非0)0)即即即即可继续循环。可继续循环。可继续循环。可继续循环。例例例例7.7.voidmain()voidmain()inta=0,n;inta=0,n;printf(“ninputn:”);printf(“ninputn:”);scanf(%d,&n);scanf(%d,&n);while(n-)while(n-)printf(%d,a+*2);printf(%d,a+*2);执行执行n次,每执行次,每执行1次,次,n减减1。(a*2(a*2;a+)a+)等价于等价于等价于等价于输入输入输入输入:8
13、:8输出输出输出输出:0 2 4 6 8 10 12 14:0 2 4 6 8 10 12 141717例例8.while和和do-while循环比较。循环比较。voidmain()intsum=0,i;scanf(“%d”,&i);while(i=10)sum=sum+i;i+;printf(“sum=%d”,sum);dodosum=sum+i;sum=sum+i;i+;i+;while(i=10);while(i=10);输入:输入:输入:输入:8 8sumsumi i0 08 88 89 91717101027271111输入:输入:输入:输入:1111sum=0sum=0sum=11
14、sum=1118186.46.4 for for 语句语句代替代替while while 语句语句6.4.1形式:形式:for(表达式表达式1;表达式表达式2;表达式表达式3)语句语句要正确表达循环结构应要正确表达循环结构应注意注意三方面要求:三方面要求:1、循环控制变量的初始化。、循环控制变量的初始化。2、循环的条件。、循环的条件。3、循环控制变量的值的更新、循环控制变量的值的更新for语语句句在在书书写写形形式式上上集集中中体现了这三方面要求体现了这三方面要求19196.4.2功能功能for语句语句完全可以取代完全可以取代while语句语句。for(表达式表达式1;表达式;表达式2;表达式
15、;表达式3)语句语句它的它的执行过程执行过程如下:如下:1)先求解表达式)先求解表达式1。2)求求解解表表达达式式2,若若其其值值为为真真(非非0),则则执执行行for语语句句中中指指定定的的内内嵌嵌语语句句,然然后后执执行行第第3)步步;若若其其值值为为假假(0),则则结结束束循循环环,转转到第到第5)步。)步。3)求解表达式)求解表达式3。4)转回第)转回第2)步继续执行。)步继续执行。5)循环结束,执行)循环结束,执行for语句下面的一个语句。语句下面的一个语句。2020(用用for语句改写前面的语句改写前面的例例2、例、例4、例、例5、例、例7)计算表达式计算表达式3语句语句当表达式当
16、表达式2值非零值非零计算表达式计算表达式12121例例例例2 2、求、求、求、求voidvoidmain()main()inti,sum=0;inti,sum=0;i=1;i=1;dosum+=i;i+;dosum+=i;i+;while(i=100);while(i=100);printf(%dn,sum);printf(%dn,sum);voidmain()voidmain()inti,sum=0;inti,sum=0;forfor(i=1;i=100;i+i=1;i=100;i+)sum+=i;sum+=i;printf(%dn,sum);printf(%dn,sum);2222例例例例
17、44.计算计算计算计算p=123np=123nvoidmain()voidmain()inti,n;longp;inti,n;longp;scanf(”%d”,&n);scanf(”%d”,&n);i=1;p=1;i=1;p=1;while(while(i=ni=n)p*=ip*=i;i+i+;printf(”p=%ldn”,p);printf(”p=%ldn”,p);for(i=1,p=1;i=n;i+)for(i=1,p=1;i=n;i+)P*=i;P*=i;中间用逗号中间用逗号中间用逗号中间用逗号for(i=1,p=1;i=n;P*=i,i+)for(i=1,p=1;i0)s=1!+2!
18、+3!+n!(n0)voidmain()voidmain()inti,n;longs,t;inti,n;longs,t;scanf(”%d”,&n);scanf(”%d”,&n);i=1;t=1;s=0;i=1;t=1;s=0;dodot*=i;s+=t;t*=i;s+=t;i+;i+;while(while(i=ni=n););printf(”s=%ldn”,s);printf(”s=%ldn”,s);for(i=1for(i=1,t=1t=1,s=0;i=n;i+)s=0;i=n;i+)t*=i;s+=t;t*=i;s+=t;2424例例例例77.计计计计算算算算下下下下面面面面二二二二十
19、十十十个个个个数数数数的的的的和和和和:13.813.8、-65-65、68.968.9、342.987342.987voidmain()voidmain()intint i=1i=1;floatx,sum=0;floatx,sum=0;while(i=20)while(i=20)scanf(”%f”,&x);sum+=x;scanf(”%f”,&x);sum+=x;i+;i+;printf(”sum=%fn”,sum);printf(”sum=%fn”,sum);forfor(i=1i=1;i=20i=20;i+i+)scanf(”%f”,&x);sum+=x;2525 forfor语句形式
20、:语句形式:语句形式:语句形式:for(for(循环变量赋初值;循环条件;循环变量增量循环变量赋初值;循环条件;循环变量增量循环变量赋初值;循环条件;循环变量增量循环变量赋初值;循环条件;循环变量增量)语句语句语句语句 总是一个总是一个总是一个总是一个赋赋赋赋值语句值语句值语句值语句,它用它用它用它用来给循环控来给循环控来给循环控来给循环控制变量赋初制变量赋初制变量赋初制变量赋初值值值值总是一个总是一个总是一个总是一个表表表表达式达式达式达式,它用来它用来它用来它用来判别循环是判别循环是判别循环是判别循环是否终止否终止否终止否终止定义循环控制定义循环控制定义循环控制定义循环控制变量每循环一变量
21、每循环一变量每循环一变量每循环一次后按什么方次后按什么方次后按什么方次后按什么方式变化式变化式变化式变化这三个部分之间用这三个部分之间用这三个部分之间用这三个部分之间用“;”分开分开分开分开2626对于对于for循环中语句的一般形式,循环中语句的一般形式,for(表达式表达式1;表达式;表达式2;表达式;表达式3)语句语句就是如下的就是如下的while循环形式:循环形式:表达式表达式1;while(表达式(表达式2)语句语句表达式表达式3;2727例例例例1.1.写出下面程序的输出结果写出下面程序的输出结果写出下面程序的输出结果写出下面程序的输出结果#include#includevoidma
22、in()voidmain()charc;charc;for(;for(;(c=getchar()-#(c=getchar()-#;)putchar(c);)putchar(c);c c为为为为#,值为,值为,值为,值为0 0,结束,结束,结束,结束可以是任意表达式可以是任意表达式可以是任意表达式可以是任意表达式输入:输入:输入:输入:a56*3h#hj$a56*3h#hj$输出:输出:输出:输出:a56*3ha56*3h2828例例2.下面程序的输出结果是下面程序的输出结果是voidmain()intx=10,y=10,i;for(i=0;x8;y=+i)printf(”%3d%3d”,x-,
23、y);A10192B9876C101091D10990表达式表达式表达式表达式1 1只做一次只做一次只做一次只做一次x xy y101010109 91 18 8C2 22929注意注意:1 1)forfor循循循循环环环环中中中中的的的的“表表表表达达达达式式式式1 1”、“表表表表达达达达式式式式2(2(循循循循环环环环条条条条件件件件)”和和和和“表达式表达式表达式表达式3 3”可以缺省可以缺省可以缺省可以缺省,但但但但“;”不能缺省。不能缺省。不能缺省。不能缺省。2 2)省省省省略略略略了了了了“表表表表达达达达式式式式1 1”,表表表表示示示示不不不不对对对对循循循循环环环环控控控控
24、制制制制变变变变量量量量赋赋赋赋初初初初值值值值,可在可在可在可在forfor循环里面或外面对其赋初值循环里面或外面对其赋初值循环里面或外面对其赋初值循环里面或外面对其赋初值。例如例如例如例如:i=1;i=1;forfor(;i=20;i+;i=20;i+)scanf(”%f”,&x);sum+=x;scanf(”%f”,&x);sum+=x;3 3)省略)省略)省略)省略“表达式表达式表达式表达式2 2”,则不做其它处理时成为死循环。则不做其它处理时成为死循环。则不做其它处理时成为死循环。则不做其它处理时成为死循环。例如:例如:例如:例如:for(i=1;i+)sum=sum+i;for(i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 谢丽聪 老师 语言 循环 控制 2009 演示 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内