第5章循环结构.ppt
《第5章循环结构.ppt》由会员分享,可在线阅读,更多相关《第5章循环结构.ppt(45页珍藏版)》请在课桌文档上搜索。
1、第5章 循环结构程序设计,C 语言程序设计,2023/11/6,2,本章主要内容,while循环控制do-while循环控制for循环控制用goto语句实现循环控制(略)循环结构中的跳转语句循环的嵌套循环结构程序设计举例,2023/11/6,3,5.1 while循环控制,语句一般格式 while(表达式)语句,一般为关系表达式或逻辑表达式,也可以是C语言其他类型的合法表达式 用来控制循环体是否执行,称为内嵌语句,可以是基本语句、控制语句,也可以是复合语句是循环重复执行的部分,2023/11/6,4,功能:,计算表达式的值,为非0(逻辑真)时,重复执行内嵌语句,每执行一次,就判断一次表达式的值
2、,直到表达式的值为0 时结束循环,转去执行while后面的语句。,循环控制条件,循环体,2023/11/6,5,例如:,【例5.1】编写程序,求100个自然数的和即:s=1+2+3+100,思路:寻找加数与求和的规律,加数i从1变到100,每循环一次,使i增1,直到i的值超过100。i的初值设为1。求和设变量 sum 存放和,循环求sum=sum+i,直至i超过100。,2023/11/6,6,算法和程序:,main()int i,sum;i=1;sum=0;while(i=100)sum=sum+i;i+;printf(sum=%dn,sum);,程序输出结果:sum=5050,i:循环控制
3、变量sum:累加器,2023/11/6,7,注意:,如果while的(表达式)值为0,则循环体一次也不执行(例如当i的初值=101)。在循环体中必须有使循环趋向结束的操作,否则循环将无限进行(死循环)。在循环体中,语句的先后位置必须符合逻辑,否则会影响运算结果。,思考程序段的输出?while(i=100)i+;sum=sum+i;,运行后,输出:sum=5150原因是什么?,2023/11/6,8,注意(续):,为了保证循环正常运行,应该特别注意:循环控制条件的描述 控制条件的初始状态(初始值)循环体内部对控制条件的影响,2023/11/6,9,5.2 do-while语句,语句一般格式 do
4、 语句 while(表达式);功能:先执行内嵌语句(循环体),之后计算表达式的值,不为0(逻辑真)时,再执行循环体并判断条件,直到表达式的值为 0 结束循环,转去执行while下面的语句。,2023/11/6,10,do-while循环的算法,N-S结构图,main()int i=1,sum=0;do sum=sum+i;i+;while(i=100);printf(%dn,sum);,用do-while语句求100个自然数的和,2023/11/6,11,说明:,while和do-while都能实现循环控制,while结构程序通常都可以转换成do-while结构,区别:do-while 语句先
5、执行循环体再判断条件,循环体至少执行一次;while 语句先判断条件再执行循环体,循环体有可能一次也不执行dowhile循环体中一定要有能使表达式值趋于0的操作(如i+),否则会出现死循环。,2023/11/6,12,do-while语句的简单应用,【例】用辗转相除法求m和n的最大公约数,2023/11/6,13,算法和程序:,main()int m,n,r;scanf(%d,%d,程序运行情况如下:24,6012,2023/11/6,14,5.3 for语句,语句一般格式 for(表达式1;表达式2;表达式3)语句,功能:计算表达式1的值,再判断表达式2,如果其值为非0(逻辑真),则执行内嵌
6、语句(循环体),并计算表达式3;之后再去判断表达式2,一直到其值为0时结束循环,执行后续语句。,2023/11/6,15,for语句的算法,例如:main()int i,sum;sum=0;for(i=1;i=100;i+)sum=sum+i;printf(sum=%dn,sum);,可部分或全部省略,但“;”不可省略,2023/11/6,16,省略for语句的表达式,表达式1、2、3全省略,即:for(;)就等同于:while(1),会无限循环(死循环),注意:在省略某个表达式时,应在适当位置进行循环控制的必要操作,以保证循环的正确执行,省略表达式1和表达式3,即:for(;表达式2;)就等
7、同于:while(表达式2)省略表达式2,即:for(表达式1;表达式3)就等同于:表达式1;while(1)表达式3;,2023/11/6,17,例如:,i=1;for(;i100)for(i=1;i100)i+;,2023/11/6,18,说明:,所有用 while 语句实现的循环都可以用for 语句实现。,等价于:,for(表达式1;表达式2;表达式3)语句;,表达式1;while(表达式2)语句;表达式3;,2023/11/6,19,for语句的简单应用,【例】求n!,即计算p=123n的值。,思路:求阶乘与求累加的运算处理过程类似,只要将“+”变为“*”。,设置:乘数i,初值为1,终
8、值为n(n是循环控制终值,需要从键盘输入)累乘器 p,每次循环令p=p*i,2023/11/6,20,程序:,#include stdio.hmain()int i,n;float p;p=1;printf(Enter n:);scanf(%d,思考:如何输出1!,2!,n!?如何求s=1!+2!+n!?,2023/11/6,21,熟悉几个循环语句,while(!x)x+;当 x=0 时,执行循环体x+;,while(c=getchar()!=n)n=n+1;n 称为计数器,作用是统计输入字符的个数while(num+5);先执行循环体x*=-3,再判断条件(x5)for(n=0;n26;n+
9、)printf(%c,n+A);作用是输出26个大写字母for(sum=0,i=1;i=100;sum=sum+i,i+=2);作用是计算100以内的奇数和,2023/11/6,22,几种循环语句的比较,while和do-while语句的表达式只有一个,for语句有三个。while 和for先判断循环条件后执行循环体,do-while语句先执行循环体后判断循环条件。,while语句多用于循环次数不定的情况do-while语句多用于至少要运行一次的情况for语句多用于要赋初值或循环次数固定的情况,2023/11/6,23,5.4 用goto语句实现循环,有兴趣的同学自学不提倡使用goto语句,注
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 结构
链接地址:https://www.desk33.com/p-747620.html