第6章 循环控制.ppt
《第6章 循环控制.ppt》由会员分享,可在线阅读,更多相关《第6章 循环控制.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第六六章章5.1 5.1 5.1 5.1 概述概述概述概述 .(3).(3).(3).(3)5.2 5.2 5.2 5.2 gotogotogotogoto语句与语句与语句与语句与ifififif语句构成循环语句构成循环语句构成循环语句构成循环 .(5).(5).(5).(5)5.3 while5.3 while5.3 while5.3 while语句语句语句语句 (10)(10)(10)(10)5.4 do while5.4 do while5.4 do while5.4 do while语句语句语句语句 (14)(14)(14)(14)5.5 for5.5 for5.5 for5.5 f
2、or语句语句语句语句 .(18).(18).(18).(18)5.6 5.6 5.6 5.6 几种循环的比较几种循环的比较几种循环的比较几种循环的比较 (40)(40)(40)(40)5.7 break5.7 break5.7 break5.7 break语句和语句和语句和语句和continuecontinuecontinuecontinue语句语句语句语句 (42)(42)(42)(42)5.8 5.8 5.8 5.8 程序举例程序举例程序举例程序举例 (49)(49)(49)(49)小小小小 结结结结 (57)(57)(57)(57)作作作作 业业业业 (58585858)第五讲第五讲 循
3、环控制循环控制 (3.5学时学时)5.1 5.1 概述概述前面已介绍了顺序结构、选择结构。本章讨论循环结构。如:sum=1+2+3+100;循环结构循环结构用以控制用以控制一组连续重复执行的语句。可用循环语句实现。C语言可用四种形式组织循环语言可用四种形式组织循环2.while语句3.dowhile语句4.for语句1.if语句与goto语句5.2 5.2 gotogoto语句与语句与ifif语句构成循环语句构成循环goto语句:无条件转向语句(教材p87)一、一、形式形式:二、二、功能功能:三、语句标号:用标识符表示。goto语句标号;无条件地将程序控制转移到“语句标号”所标识的语句去执行。
4、四、四、与与 if 构成循环构成循环用if和goto语句构成循环,一般形式为:语句标号:if(表达式)语句;goto语句标号;这里的“语句”可以是一条语句或者若干条语句组成的复合语句,它与goto语句一起用一对 括起来,成为if和goto语句构成的循环体。当if 中的表达式为真(非0)时,执行循环体,否则执行循环体下面的语句。例例5-1 5-1(教材(教材p87 p87 例例 5-135-13)求sum=0,i=1i=100sum=sum+ii=i+1gotoloop输出sum结束真(非0)假(0)loop流程图如下:流程图如下:=1+2+.+100sum=loop:if(i=100)sum=
5、sum+i;i+;gotoloop;运行结果:运行结果:5050main()程序:程序:intsum=0,i=1;printf(%d,sum);main()intsum=0,i=1;loop:sum=sum+i;i+;if(i=100)gotoloop;本例相当于当型循环本例相当于当型循环,若改为直到型若改为直到型:printf(sum=%d,sum);5.3 while5.3 while语句语句 (教材p78)根据结构化程序设计的要求,应尽量少用或不用goto语句。while语句是一种专门的当型循环语句。一、一、while语句的一般形式语句的一般形式表达式中的控制变量在进入while语句之前
6、须赋初值 二、功能:二、功能:当表达式为非0时,反复执行循环体语句S。while(表达式)语句S;在循环体内要修改循环控制变量的值。循环体为多条语句时,须用花括号括起来。三、流程图三、流程图:循环体语句0=0表达式下一语句当表达式成立执行循环体语句执行后继语句 N-S N-S 图图流程图:i=i+1sum=sum+isum=0,i=1i=100输出sum结束真(非0)假(0)N-S图:i=1;sum=0;当i=100sum=sum+i;输出sumi=i+1;例例5-2:用while语句求 sum=程序:程序:main()intsum=0,i=1;/*须对循环变量i赋初值*/while(i=10
7、0)/*表达式中的i称为循环变量*/sum=sum+i;i=i+1;/*在循环体内必须要修改循环变量的值*/printf(sum=%dn,sum);5.4 do while5.4 do while语句语句 (教材p81)dowhile语句是一种专门的“直到型”循环语句。二、二、执行过程执行过程:一、一般形式一、一般形式:循环体语句while(表达式);do先执行循环体语句,再判表达式的值;当表达式成立,则反复执行循环体语句,直到表达式为0则结束循环。三、流程图三、流程图:0(真)=0(假)循环体语句下一语句表达式执行循环体语句直到表达式为假执行后继语句 N-S 图图main()inti,sum
8、=0;i=1;dosum=sum+i;i+;while(i=100);printf(%d,sum);例例5-9(教材p81)求while语句与dowhile语句的区别:while语句是先判断后执行,因此循环体有可能一次也不执行。而dowhile语句是先执行后判断,因此,循环体至少被执行一次。5.5 for5.5 for语句语句 (教材p75)一、一般形式一、一般形式一种形式更为灵活的循环语句。for(表达式1;表达式2;表达式3)循环体语句;二、二、执行流程执行流程:计算表达式1=0(假)0(真)求表达式2循环体语句结束for循环计算表达式3for语句的N-S图计算表达式1当表达式2成立执行循
9、环体语句执行后继语句计算表达式3例例5-4:5-4:用for语句求(教材p76)main()inti,sum=0;for(i=1;i=100;i+)sum=sum+i;printf(sum=%dn,sum);表达式1表达式2表达式3N-S图sum=0;i=1;当i=100sum=sum+i;printf(sum=%dn,sum);i=i+1;可以去掉表达式1编写成以下形式的程序:main()inti=1,sum=0;for(;i=100;i+)sum=sum+i;printf(sum=%dn,sum);注:注:若去掉表达式1,应在for语句保留“;”,且在for语句之前应赋初值给循环变量i。可
10、以去掉表达式3,但必须在循环体中有语句修改循环变量i的值。mian()inti,sum=0;for(i=1;i=100;)sum=sum+i;i+;printf(sum=%dn,sum);一般不可以去掉表达式2,否则出现无限循环,因“i100)break;sum=sum+i;printf(sum=%dn,sum);三个表达式都可以去掉。此时程序必须改写成以下形式:main()inti,sum=0;i=1;for(;)if(i=100)sum=sum+i;i+;printf(sum=%dn,sum);另外,表达式1和表达式3可以是逗号表达式。上面程序可以修改为:main()inti,sum;fo
11、r(i=1,sum=0;ib)i=b;j=a;for(s=0;i=j;i+)s=s+i;printf(s=%dn,s);注:注:程序中scanf语句的格式串若改为:scanf(%d%d,&a,&b);则输入:15/*数据间用空格分隔*/输出结果:s=15结果:结果:s=15输入:输入:1,5例例5-6.5-6.输入一个正整数,判断其是否为素数。问题思考:问题思考:素数定义:若一个自然数x只能被1和自身整除,则x为素数;下面的程序先采用上述最简单的方法,且用一个标志变量flag的最终值为“非0”,来表示x为素数。判断x是否素数的方法很多。最简单的方法是先用2去除x,除得尽,则x不为素数,否则,再
12、用3去除x,除得尽,则x不为素数,否则,继续用4去除,直到x1都除不尽,则x是素数。改进方法之一是:用2到之间的整数去试除x,若没有一个能整除x,则x是素数。流程图:流程图:x%j=0flag=1j=x-1输入xflag=0j+结束假j=2真假flag=1输出x为素数输出x不为素数假真真输入x;flag=1;即假定x是素数j2;当j=x-1;用2x-1之间的整数j去试除xx%j=0?否是j+flag=0;break;flag=1?是否输出x是素数输出x不是素数判断判断 x 是否素数的是否素数的 N-S 图图程序:程序:main()intj,x,flag;scanf(%d,&x);for(j=2
13、;j=x-1;j+)if(x%j=0)flag=0;break;if(flag=1)printf(%disaprimenumber.n,x);elseprintf(%disntaprimenumber.n,x);flag=1;/*假定x是素数*/运行程序:运行程序:显示:显示:31isaprimenumber.再次运行程序:再次运行程序:显示:显示:51isntaprimenumber.输入:输入:31输入:输入:51 注:注:注:注:for(j=2;j=sqrt(x);j+)因为程序中使用了求平方根的数学函数sqrt,则必须在程序开头添加下列编译预处理命令:#includemath.h若用2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 循环控制 循环 控制
限制150内