5-2 循环结构程序设计.ppt
《5-2 循环结构程序设计.ppt》由会员分享,可在线阅读,更多相关《5-2 循环结构程序设计.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计语言程序设计 第第5章章 循环程序设计循环程序设计例如:例如:【例例5.1】编写程序,求编写程序,求100个自然数的和个自然数的和即:即:s=1+2+3+100 思路:寻找思路:寻找加数加数与与求和求和的规律的规律 加数加数i i从从1变到变到100,每循环一次,使,每循环一次,使i增增1,直到直到i的值超过的值超过100。i i的的初值初值初值初值设为设为1。求和求和设变量设变量 sum sum 存放和存放和,循环求,循环求sum=sum=sum+isum+i,直至直至i超过超过100。25.2 while循环语句循环语句计算计算sum=1+2+3+100main()int i
2、,sum;i=1;sum=0;while(i=100)sum=sum+i;i+;printf(sum=%dn,sum);35.2 while循环语句循环语句循环体循环体循环控制条件循环控制条件i:i:循环控制循环控制变量变量循环的初始化循环的初始化#include void main()int i=1,sum=0;while(i=100)sum=sum+i;i+;printf(Sum=%d n,sum);计算计算sum=1+2+3+1004注意(续):注意(续):为了保证循环正常运行,应该特别注意:为了保证循环正常运行,应该特别注意:循环控制条件的描述循环控制条件的描述 控制条件的初始状态(初
3、始值)控制条件的初始状态(初始值)循环体内部对控制条件的影响循环体内部对控制条件的影响55.2 while循环语句循环语句while语句的执行过程语句的执行过程while语句的执行过程是:语句的执行过程是:计算计算“表达式表达式”的值;的值;若若“表达式表达式”的值不等于的值不等于0,表示为,表示为“真真”,转向,转向;否则,表示为;否则,表示为“假假”,结束循环,转到,结束循环,转到while语句后面语句后面的语句继续执行程序;的语句继续执行程序;执行执行“语句语句”部分,即执行循环体;部分,即执行循环体;返回返回继续执行。继续执行。65.2 do-while语句语句语句一般格式语句一般格式
4、 do 语句语句 while(表达式表达式););功能:功能:先执行内嵌语句先执行内嵌语句(循环体),之后计算表达(循环体),之后计算表达式的值,不为式的值,不为0(逻辑真)时,再执行循环体(逻辑真)时,再执行循环体并判断条件,直到表达式的值为并判断条件,直到表达式的值为 0 结束循环,结束循环,转去执行转去执行while下面的语句。下面的语句。7do-while语句的执行过程语句的执行过程NY循环体循环体表达式非表达式非0?流程图流程图 循环体循环体当表达式为真当表达式为真N-S结构图结构图功能:功能:先执行内嵌语句先执行内嵌语句(循环体),之后计算表达式(循环体),之后计算表达式的值,不为
5、的值,不为0(逻辑真)时,再执行循环体并判断条(逻辑真)时,再执行循环体并判断条件,直到表达式的值为件,直到表达式的值为 0 结束循环,转去执行结束循环,转去执行while下面的语句。下面的语句。8 do-while循环的算法循环的算法main()int i=1,sum=0;do sum=sum+i;i+;while(i=100);printf(%dn,sum);用用用用do-whiledo-while语句求语句求语句求语句求100100个自然数的和个自然数的和个自然数的和个自然数的和 9#include main()int i=1,sum=0;while(i=100)sum=sum+i;i+
6、;printf(“Sum=%d n”,sum);#include main()int i=1,sum=0;dosum=sum+i;i+;while(i=100);printf(“Sum=%d n”,sum);5.2 while和和do while循环循环循环变化形式,循环变化形式,1到到100的累加的累加10说明:说明:while和和do-while都能实现循环控制,都能实现循环控制,while结构程序通常都可以转换成结构程序通常都可以转换成do-while结构结构l l区别:区别:do-while 语句语句先执行循环体再判断条先执行循环体再判断条件,循环体件,循环体至少执行一次至少执行一次;
7、while 语句语句先判断条件再执行循环体,先判断条件再执行循环体,循环体有可能一次也不执行循环体有可能一次也不执行l ldowhile循环体中一定要有能使表达式值循环体中一定要有能使表达式值趋于趋于0的操作的操作(如如i+),否则会出现否则会出现死循环死循环。115.3 for语句语句语句一般格式语句一般格式 for(表达式表达式1;表达式表达式2;表达式表达式3)语句语句l“表达式表达式1 1”用于设定循环开始的条件用于设定循环开始的条件,循环的初始化循环的初始化l“表达式表达式2 2”是是forfor语句的语句的循环控制条件循环控制条件,当循环控制条件为,当循环控制条件为1(True)1
8、(True)或非或非0 0时,运行时,运行循环体的循环体的“语句语句”部分。可以是任何形式部分。可以是任何形式的表达式的表达式l“表达式表达式3 3”用于用于修改修改循环控制变量循环控制变量的值的值,目的是,目的是使使“表达式表达式2 2”的值变为的值变为0(False)0(False),以结束循环,以结束循环l“语句语句”部分是部分是forfor语句的语句的循环体循环体,可以是单一语句,也可以是,可以是单一语句,也可以是复合语句复合语句12for语句的执行过程语句的执行过程13使用使用for语句编程计算语句编程计算100个自然数的和个自然数的和#include main()int i,sum
9、=0;for(i=1;i=100;i+)sum+=i;printf(“sum=%d n,sum);145.3 for语句语句 for语句是常用的、特殊的循环控制语句语句是常用的、特殊的循环控制语句for语句语句优点优点:将:将“循环初始化条件循环初始化条件”、“循循环控制条件环控制条件”、“循环控制变量的修改循环控制变量的修改”集集中表示中表示for语句的功能强大,使用灵活,变化多样语句的功能强大,使用灵活,变化多样15使用使用for语句编程计算语句编程计算100个自然数的和个自然数的和#include main()int i,sum=0;for(i=1;i=100;i+)sum+=i;pri
10、ntf(“sum=%d n,sum);可部分或全部省略,可部分或全部省略,可部分或全部省略,可部分或全部省略,但但但但“;”不可省略不可省略不可省略不可省略16省略省略for语句的表达式语句的表达式 表达式表达式1、2、3全省略,全省略,即:即:for(;)就等同于:就等同于:while(1),会无限循环(会无限循环(死循环死循环)注意:在省略某个表达式时,应在适当位置进行循注意:在省略某个表达式时,应在适当位置进行循环控制的必要操作,以保证循环的正确执行环控制的必要操作,以保证循环的正确执行 省略表达式省略表达式省略表达式省略表达式1 1和表达式和表达式和表达式和表达式3 3,即:即:即:即
11、:forfor(;(;(;(;表达式表达式表达式表达式2 2;);););)就等同于:就等同于:就等同于:就等同于:whilewhile(表达式表达式表达式表达式2 2)省略表达式省略表达式省略表达式省略表达式2 2,即:即:即:即:forfor(表达式表达式表达式表达式1 1;表达式;表达式;表达式;表达式3 3)就等同于:就等同于:就等同于:就等同于:表达式表达式表达式表达式1;while(1)1;while(1)表达式表达式表达式表达式3;3;17例如:例如:i=1;for(;i100)for(i=1;i100)i+;18说明:说明:所有用所有用 while 语句语句实现的循环都可以用实
12、现的循环都可以用for 语句语句实现。实现。等价于:等价于:for(表达式表达式1;表达式表达式2;表达式表达式3)语句;语句;表达式表达式1;while(表达式表达式2)语句;语句;表达式表达式3;19几种循环语句的比较几种循环语句的比较while和和do-while语句的语句的表达式表达式只有只有一个一个,for语语句有句有三个三个。while 和和for先判断先判断循环条件循环条件后执行后执行循环体,循环体,do-while语句语句先执行先执行循环体循环体后判断后判断循环条件。循环条件。whilewhile语句多用于语句多用于语句多用于语句多用于循环次数不定循环次数不定循环次数不定循环次
13、数不定的情况的情况的情况的情况do-whiledo-while语句多用于语句多用于语句多用于语句多用于至少要运行一次至少要运行一次至少要运行一次至少要运行一次的情况的情况的情况的情况forfor语句语句语句语句多用于要多用于要多用于要多用于要赋初值赋初值赋初值赋初值或或或或循环次数固定循环次数固定循环次数固定循环次数固定的情况的情况的情况的情况20#include main()int i=1,sum=0;while(i=100)sum=sum+i;i+;printf(“Sum=%d n”,sum);#include main()int i=1,sum=0;dosum=sum+i;i+;whil
14、e(i=100);printf(“Sum=%d n”,sum);循环变化形式,循环变化形式,1到到100的累加的累加几种循环语句的比较几种循环语句的比较#include main()int i,sum=0;for(i=1;i=100;i+)sum+=i;printf(“sum=%d n,sum);215.4 循环的嵌套循环的嵌套如果在一个循环的循环体内包含另一个完整的如果在一个循环的循环体内包含另一个完整的循环则称为循环则称为循环的嵌套循环的嵌套,其中被嵌套的循环称,其中被嵌套的循环称为为内循环内循环,而嵌套了内循环的是,而嵌套了内循环的是外循环外循环内循环还可以嵌套循环,形成多级(层)嵌套内
15、循环还可以嵌套循环,形成多级(层)嵌套22 循环的嵌套不仅可以发生在相同语句之间,如循环的嵌套不仅可以发生在相同语句之间,如while嵌套嵌套while、do-while嵌套嵌套do-while,while语句和语句和do-while语句也可以互相嵌语句也可以互相嵌套套(1)while(.)(2)while()while()dowhile();(3)do(4)dowhile()do while();while();循环的嵌套循环的嵌套23for语句可以嵌套语句可以嵌套for语句构成循环的嵌套语句构成循环的嵌套for语句也可以与语句也可以与while语句、语句、do-while语句语句互相互相嵌
16、套嵌套24注意:注意:while、do-while、for循环语句可以并列,循环语句可以并列,也可以相互嵌套,但也可以相互嵌套,但要层次清楚,不能出要层次清楚,不能出现交叉。现交叉。多多重重循循环环程程序序执执行行时时,外外层层循循环环每每执执行行一一次,内层循环都需要循环执行多次。次,内层循环都需要循环执行多次。例如:例如:for(a=1;a=10;a+)for(b=0;b=5;b+)外循环外循环外循环外循环执行了执行了执行了执行了1010次,次,次,次,内循环内循环内循环内循环执行执行执行执行6 6次次次次循环正常结束时,内循环执行了循环正常结束时,内循环执行了循环正常结束时,内循环执行了
17、循环正常结束时,内循环执行了106=60106=60次次次次 25错误的嵌套形式 循环必须是完整循环必须是完整的,不允许内外循环的,不允许内外循环交叉嵌套交叉嵌套f=1;while(i 10)i=1;do f=f*i;i+;while(i10);混乱的控制条件 内外循环的循环控制条件通内外循环的循环控制条件通常是分开的,相对独立的常是分开的,相对独立的i=1;s=0;while(i 3)s=s+f;i=1;f=1;while(i5)i+=2;f=f*i;i+;循环的嵌套循环的嵌套265.5 循环结构中的跳转语句循环结构中的跳转语句有如下三种语句实现跳转:有如下三种语句实现跳转:continue
18、语句语句break语句语句goto语句语句在循环语句的循环体中使用,可以进行循在循环语句的循环体中使用,可以进行循环的流程控制环的流程控制27后续语句后续语句continue;continue;Y YN N表达式表达式表达式表达式?后续语句后续语句continue;continue;表达式表达式表达式表达式?Y YN Ncontinue语句及应用语句及应用 功能:功能:跳过循环体中尚未执行的语句,立即开始执行下一次跳过循环体中尚未执行的语句,立即开始执行下一次循环。循环。whilewhile语句语句语句语句do-whiledo-while语句语句语句语句后续语句后续语句计算表达式计算表达式计算
19、表达式计算表达式3 3计算表达式计算表达式计算表达式计算表达式1 1continue;continue;表达式表达式表达式表达式2?2?Y YN Nforfor语句语句语句语句28后续语句后续语句break;break;Y YN N表达式表达式表达式表达式?后续语句后续语句break;break;表达式表达式表达式表达式?Y YN N循环中循环中break的应用的应用功能:功能:终止本层循环,转到本层循环的后续语句执行。终止本层循环,转到本层循环的后续语句执行。whilewhile语句语句语句语句do-whiledo-while语句语句语句语句后续语句后续语句计算表达式计算表达式计算表达式计算
20、表达式3 3计算表达式计算表达式计算表达式计算表达式1 1break;break;表达式表达式表达式表达式2?2?Y YN Nforfor语句语句语句语句29goto语句语句有兴趣的同学自学有兴趣的同学自学不提倡使用不提倡使用goto语句语句注意注意:goto语句能实现程序无条件转移,为编程语句能实现程序无条件转移,为编程提供了便利。但是无限制地使用,会破坏提供了便利。但是无限制地使用,会破坏程序的结构化程度。程序的结构化程度。因此应限制使用。因此应限制使用。30第第5章章 循环程序设计循环程序设计5.1 概述概述 5.2 while和和do while循环循环 5.3 for循环循环 5.4
21、 循环的嵌套循环的嵌套 5.5 循环的控制循环的控制 5.6 应用举例应用举例5.7 程序调试程序调试 31for语句的简单应用语句的简单应用求求n!,即计算即计算p=123n的值。的值。思路:求阶乘与求累加的运算处理过程类似,只要思路:求阶乘与求累加的运算处理过程类似,只要将将“+”变为变为“*”。设置:设置:乘数乘数乘数乘数i i,初值为,初值为1,终值为,终值为n(n是循环控制终是循环控制终值,需要从键盘输入)值,需要从键盘输入)累乘器累乘器累乘器累乘器 p p,每次循环令,每次循环令p=p*i32程序:程序:main()int i,n;long p;p=1;printf(Enter n
22、:);scanf(%d,&n);for(i=1;i=n;i+)p=p*i;printf(p=%ld n,p);思考:思考:思考:思考:如何输出如何输出如何输出如何输出1!,2!,n!1!,2!,n!?如何求如何求如何求如何求s=1!+2!+n!s=1!+2!+n!?33程序举例程序举例-1打印出所有的打印出所有的“水仙花数水仙花数”,所谓,所谓“水仙花数水仙花数”是指一个三位数,其各位数字立方和等于该数字是指一个三位数,其各位数字立方和等于该数字本身。本身。例如:例如:153=13+53+3334水仙花数程序实例水仙花数程序实例(解法解法1)#include “stdio.h”main()in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 5-2 循环结构程序设计 循环 结构 程序设计
限制150内