c语言循环语句课件.ppt

上传人:小飞机 文档编号:1804350 上传时间:2022-12-19 格式:PPT 页数:38 大小:1.09MB
返回 下载 相关 举报
c语言循环语句课件.ppt_第1页
第1页 / 共38页
c语言循环语句课件.ppt_第2页
第2页 / 共38页
c语言循环语句课件.ppt_第3页
第3页 / 共38页
c语言循环语句课件.ppt_第4页
第4页 / 共38页
c语言循环语句课件.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《c语言循环语句课件.ppt》由会员分享,可在线阅读,更多相关《c语言循环语句课件.ppt(38页珍藏版)》请在三一办公上搜索。

1、C语言程序设计第六章循环控制,6-2,主要内容,6.1 While 语句6.2 do-While 语句6.3 for 语句6.4 循环的嵌套6.5 break 和continue 语句6.6 程序举例,6-3,6.1 While 语句,概述循环结构、顺序结构、选择结构是结构化程序的三种基本结构,它们共同组成各种复杂程序。为什么使用循环语句?便捷、效率高。比如:,sum=1+2+3+100;,6-4,6.1 While 语句,C语言中循环语句的实现方式goto 和 if goto(不要求)while 语句do-while 语句for 语句,6-5,6.1 While 语句,while( “当型”

2、 循环)语句格式执行过程功能:先判断表达式,若为真则执行循环体,再判断表达式,重复上述过程,直到表达式为假时退出循环。,while(表达式) 循环体语句; ,6-6,6.1 While 语句,例1: 用 while 语句构成循环,求,void main( ) int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(%d,sum);,6-7,6.1 While 语句,例2: 用 while 语句构成循环,显示110的平方 void main() int i=1; while(i=10) printf(%d*%d=%dn,i,i,i*i); i+;

3、 ,运行结果: 1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49 8*8=64 9*9=81 10*10=100,6-8,6.1 While 语句,例3: 统计从键盘输入一行字符的个数。 #include void main( ) int n=0; printf(input a string:n); while ( getchar()!=n ) n+; printf(%d,n); ,6-9,6.1 While 语句,关于 while 循环语句的说明 while 循环先判断表达式,后执行循环体; 循环体有可能一次也不执行; 循环体若包含多条语句,应该用

4、括起来; 循环体应包含使循环趋向结束的语句;退出while循环的情况是:条件表达式不成立(为零)循环体内遇 break , goto 无限循环(死循环)必须避免: while(1) 循环体 ;,6-10,6.1 While 语句,习题6.4:求 ,(即求 1!+ 2!+ + 20!)。,#include void main() int i,t,sum; t=1;i=1; sum=0; while(i=20) t=t*i; sum=sum+t; i+; printf(sum=%dn,sum);,运行结果: s=268040729,6-11,6.1 While 语句,习题6.10:猴子吃桃问题。猴

5、子第一天摘下若干桃子,当即吃了一半多一个;第二天又吃了剩下的一半多一个,以后每天都吃了前一天剩下的一半多一个。到第10天就只剩下一个桃子了。求桃子的总数是多少。分析:第10天桃子的总数sum10 = 1;第9天桃子总数sum9 = 2*(sum10 + 1);第8天绦子总数sum8 = 2*(sum9 + 1);第1天桃子总数sum1 = 2*(sum2 + 1).,6-12,6.1 While 语句,#include void main() int sum,day;day=9;sum=1;while(day=1)sum=2*(sum+1);day-;printf(“sum=%dn”,sum)

6、; ,运行结果: sum=1534,6-13,6.2 do-while 语句,do-while ( “直到型”循环)语句格式执行过程功能:先执行循环体,然后判断表达式。若为真则再次执行循环体,否则退出循环。,do 循环体语句; while(表达式) ;,6-14,6.2 do-while 语句,例 用 do-while 语句构成循环,求,main( ) int i,sum=0; i=1; do sum= sum+i; i+; while(i=100); printf(%d,sum);,6-15,6.2 do-while 语句,关于 do-while 循环语句的说明do-while 循环先执行循

7、环体,后判断表达式; 循环体至少执行一次;同一个问题既可以用while 循环实现,也可以用do-while 循环,两者可以相互转换;当while后的表达式一开始就为假时,两种循环结果不同!,6-16,6.3 for 语句,for 语句是 C 语言和任何其他计算机语言中最为灵活,使用最广泛的循环语句。格式执行过程,for(表达式1;表达式2;表达式3) 循环体语句; ,6-17,6.3 for 语句,例 用 for 语句构成循环,求,main( ) int i,sum=0; for(i=1;i=100;i+) sum=sum+i; printf(%d,sum);,6-18,6.3 for 语句,

8、关于 for 循环语句的说明for循环中表达式1,2,3均可以省略,但是分号不能省略。for( ; ; ) 相当于 while(1) ,即死循环,运行结果: a b c d e f g a b c d e f g,#include void main() char c; for(;(c=getchar()!=n;) printf(“%c”,c); printf(“n”); ,6-19,6.4 循环的嵌套,定义一个循环体内包含另一个完整的循环结构,称为循环的嵌套。三种循环可以互相嵌套,层数不限。,while() while() .,do do while(); .while( );,while(

9、) do while(); . ,for( ; ;) do while(); while() .,6-20,6.4 循环的嵌套,循环可以互相嵌套,但不能相互交叉。,for for . .,for for . .,6-21,6.4 循环的嵌套,下列循环各执行多少次?,for (i=1; i=10; i+);for (i=1; i=10; i=i+2);for (i=1; i=10; i=i+3);for (i=1; i=20; i+) i=i*2;,10次,5次,4次,5次,6-22,6.4 循环的嵌套,例题:试打印乘法九九表。,#include void main() int i,j; pri

10、ntf(*); for (i=1;i10;i+) printf(%4d,i); printf(n-n); for (i=1;i10;i+) printf(%d,i); for (j=1;j=i;j+) printf(%4d,i*j); printf(n); ,6-23,6.4 循环的嵌套,例题:大鸡每只3元,老鸡每只2元,小鸡两只1元,如何用百元购得百鸡,怎么组合?,#include void main() int i,j,k; printf(“购买鸡的组合有:n); for(i=0;i34;i+) for(j=0;j=50;j+) for(k=0;k=200;k+) if (3*i+2*j+

11、0.5*k=100 ,6-24,6.4 循环的嵌套,几种循环的比较,语 句,适用范围,说 明, 循环变量初始化在循环体之前 循环体中应包含使循环结束的语句 可以用 break 和continue 语句控制,6-25,6.5 break 和continue 语句,break 语句 功能:只能用在循环语句和switch语句中,终止并跳出循环体。 说明: break只能终止并跳出最近一层的循环结构。 break只能用于循环语句和switch语句之中。,6-26,6.5 break 和continue 语句,6-27,6.5 break 和continue 语句,例 break举例:输出圆面积,面积大

12、于100时停止,void main( ) int r ; float area; for(r=1;r100) break; printf(r=%d,area=%f,r,area); ,使用break跳出整个循环,6-28,6.5 break 和continue 语句,例 break举例:小写字母转换成大写字母,直至输入非字母字符,#include void main() int i,j; char c; while(1) c=getchar();if (c=a ,6-29,6.5 break 和continue 语句,continue 语句功能:结束本次循环,跳过循环体中尚未执行的语句,进行下

13、一次是否执行循环体的判断。continue 语句仅用于循环语句中。,跳出循环体,但是expr3必须执行,6-30,6.5 break 和continue 语句,continue举例:把100200之间的不能被3整除的数输出,#include void main() int i; for(i=100;i=200;i+) if(i%3=0) continue; printf(“%d ”,i); ,6-31,6.5 break 和continue 语句,break 和 continue 语句的区别continue 语句只结束本次循环,break语句则是结束整个循环。continue 语句只用于whi

14、le,do-while,for循环语句中,break语句还可以用于switch语句中。,6-32,6.6 程序举例,例1:用/4 = 1 - 1/3 + 1/5 1/7 + 公式求的近似值。分析:,符号:1,-1,1,-1分母:1,3,5,7,.,= (1 1/3 + 1/5 -1/7 +)*4,6-33,6.6 程序举例,#include #include void main() int s; float n,t,pi; t=1; pi=0; n=1; s=1; while(fabs(t)=1e-6) pi=pi+t; n=n+2; s= -s; t=s/n; pi=pi*4; printf

15、(pi=%10.6fn,pi); ,运行结果: pi = 3.141594,6-34,6.6 程序举例,例2 求输入的十个整数中正数的和及其平均值,#include void main() int i,num=0,a; float sum=0; for(i=0;i10;i+) scanf(%d,12345-1-22-23-14-55 plus integers sum : 15Mean value: 3.00,Sum为什么设为float?,6-35,6.6 程序举例,例3 求Fibonacci数列:1,1,2,3,5,8,的前40个数分析: Fibonacci数列定义:F1 = 1 (n=1)

16、 F2 = 1 (n=2) Fn = Fn-1 + Fn-2 (n3),6-36,6.6 程序举例,#include void main() long int f1,f2; int i; f1=1; f2=1; for(i=1;i=20;i+) printf(%12ld %12ld ,f1,f2); if(i%2=0) printf(n); f1=f1+f2; f2=f2+f1; ,经常不断地学习,你就什么都知道。你知道得越多,你就越有力量Study Constantly, And You Will Know Everything. The More You Know, The More Powerful You Will Be,写在最后,谢谢你的到来学习并没有结束,希望大家继续努力Learning Is Not Over. I Hope You Will Continue To Work Hard,演讲人:XXXXXX 时 间:XX年XX月XX日,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号