第5章+循环控制结构程序设计.ppt
- 文档编号:2672836
- 上传时间:2022-11-06
- 格式:PPT
- 页数:36
- 大小:1.93MB
第5章+循环控制结构程序设计.ppt
《第5章+循环控制结构程序设计.ppt》由会员分享,可在线阅读,更多相关《第5章+循环控制结构程序设计.ppt(36页珍藏版)》请在冰豆网上搜索。
C语言程序设计基础教程第5章循环结构程序设计C语言程序设计基础教程2022/11/61C语言程序设计基础教程5.1while5.1while语句语句5.25.2dodowhilewhile语句语句5.35.3forfor语句语句5.45.4循环的嵌套循环的嵌套5.55.5几种循环的比较几种循环的比较5.65.6breakbreak和和continuecontinue语句语句5.75.7程序举例程序举例2022/11/62C语言程序设计基础教程循环结构是结构化程序设计的基本结构之一,它的特点是,在给定条件成立时,反复执行某程序段,直到条件不成立为止。
给定的条件称为循环条件,反复执行的程序段称为循环体。
语言提供了多种实现循环的语句,可以组成各种不同形式的循环结构。
用while语句用do-while语句用for语句2022/11/63C语言程序设计基础教程while语句可以用来实现“当型”循环结构。
1)格式:
while(表达式)语句(表达式)语句2)执行过程其特点是:
先判断表达式,后执行语句。
5.1while语句2022/11/64C语言程序设计基础教程【例5-1】用while语句求1100的累计和。
#includestdio.hmain()inti=1,sum=0;while(i=100)sum=sum+i;i+;printf(%dn,sum);程序运行结果如下:
50505.1while语句2022/11/65C语言程序设计基础教程使用while语句应注意以下几点:
(1)while循环结构的特点是“先判断,后执行”。
如果表达式的值一开始为“假”,则循环体一次也不执行。
(2)while语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为真(非0)即可继续循环。
(3)为使循环能够正确开始运行,需要对循环控制变量初始化。
(4)循环体中,如果包含一个以上的语句,则应用花括号括起来,构成复合语句,否则while语句的范围只到while后面第1个分号处。
(5)循环体内中应有使循环趋向于结束的语句。
5.1while语句2022/11/66C语言程序设计基础教程【例5-2】从键盘输入30个学生的成绩,对其进行处理;如果成绩及格,则输出“Passed”,否则输出“Failed”。
#includestdio.hmain()intn=1;floatscore;while(n=60.0)printf(Passedn);elseprintf(Failedn);n+;5.1while语句2022/11/68C语言程序设计基础教程dowhile语句可以用来实现“直到型”循环结构。
1)格式:
do语句语句while(表达式);(表达式);2)执行过程这个循环与while循环的区别在于,它先执行后判断,因此,do-while循环至少要执行一次循环体。
而while循环是先判断后执行,如果条件不满足,则循环体语句一次也不执行。
5.2dowhile语句2022/11/69C语言程序设计基础教程【例5-3】用do-while语句求1100的累计和。
#includestdio.hmain()inti=1,sum=0;dosum=sum+i;i+;while(i=100);printf(%dn,sum);程序运行结果如下:
50505.2dowhile语句2022/11/610C语言程序设计基础教程使用do-while语句应注意以下几点:
(1)do是C语言的关键字,必须与while联合使用。
(2)在if语句、while语句中,表达式后面都不能加分号,而在do-while语句的表达式后面必须加分号,它表示do-while语句的结束,否则将产生语法错误。
(3)while后面一对圆括号中的表达式,可以是C语言中任意合法的表达式。
由它控制循环是否执行。
(4)和while语句一样,在使用do-while语句时,不要忘记初始化循环控制变量,否则执行的结果将是不可预知的。
(5)要在do-while语句的某处(表达式或循环体内)改变循环控制变量的值,否则极易构成死循环。
(6)按照语法规则,在do和while之间的循环体只能是一条可执行语句。
若循环体内需要多个语句,应该用花括号括起来,组成复合语句。
5.2dowhile语句2022/11/611C语言程序设计基础教程【例5-4】将输入的一串字符显示在屏幕上,遇到空格时停止。
#includestdio.hmain()charc;printf(nPleaseinputastring:
);doc=getchar();putchar(c);while(c!
=);程序运行结果如下:
Pleaseinputastring:
HomeworkintheschoolHomework5.2dowhile语句2022/11/612C语言程序设计基础教程【例5-5】while语句和do-while语句的比较。
main()ints=0,n;scanf(%d,&n);while(n=10)s=s+n;n+;printf(%d,s);main()ints=0,n;scanf(%d,&n);dos=s+n;n+;while(n10时,两者结果不同。
这是因为此时对while循环来说,一次也不执行循环体(表达式“i=100”为假),而对do-while循环语句来说,则要执行一次循环体。
可以得到结论:
当while后面的表达式的第1次的值为“真”时,两种循环得到的结果相同,否则,两者结果不相同(指两者具有相同的循环体的情况)。
5.2dowhile语句2022/11/614C语言程序设计基础教程for语句是循环控制结构中使用最广泛的一种循环控制语句,特别适合用于已知循环次数的情况。
1)格式:
for(表达式(表达式1;表达式;表达式2;表达式;表达式3)语句)语句2)执行过程5.3for语句2022/11/615C语言程序设计基础教程【例5-6】用for语句求1100的累计和。
#includestdio.hmain()ints=0,n=1;for(n=1;n=100;n+)s=s+n;printf(s=%dn,s);程序运行结果如下:
50505.3for语句2022/11/616C语言程序设计基础教程使用for语句应注意以下几点:
(1)for循环中的“表达式1(循环变量赋初值)”、“表达式2(循环条件)”和“表达式3(循环变量增量)”都是选择项,即可以缺少,但“;”不能缺少。
(2)省略了“表达式1(循环变量赋初值)”,表示不对循环控制变量赋初值。
(3)省略了“表达式2(循环条件)”,则不做其他处理时便成为死循环。
(4)省略了“表达式3(循环变量增量)”,则不对循环控制变量进行操作,这时可在循环体中加入修改循环控制变量的语句。
5.3for语句2022/11/617C语言程序设计基础教程使用for语句应注意以下几点:
(5)省略了“表达式1(循环变量赋初值)”和“表达式3(循环变量增量)”。
(6)3个表达式都可以省略。
(7)表达式1可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。
(8)表达式1和表达式3可以是简单表达式,也可以是逗号表达式。
(9)表达式2一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其值非零,就执行循环体。
5.3for语句2022/11/618C语言程序设计基础教程【例5-7】输出1001000之间同时能被4和6同时整除的数及其和。
#includestdio.hmain()floats=0;inti;for(i=100;i=1000;i+)if(i%4=0&i%6=0)s=s+i;printf(%5d,i);printf(s=%fn,s);5.3for语句2022/11/619C语言程序设计基础教程【例5-8】在3100之间所有3的倍数中,找出个位数为2的数。
#includestdio.hmain()inti=0;for(i=3;i=100;i+)if(i%3=0&i%10=2)printf(%4d,i);printf(n);5.3for语句程序运行结果如下:
1242722022/11/620C语言程序设计基础教程【例5-9】一个球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。
求它在第10次落地时,共经过多少米?
第10次反弹多高?
#includestdio.hmain()floatsn=100.0,hn=sn/2;intn;for(n=2;n=10;n+)5.3for语句2022/11/621C语言程序设计基础教程sn=sn+2*hn;hn=hn/2;printf(thetotalofroadis%fn,sn);printf(thetenthis%fmetern,hn);5.3for语句程序运行结果如下:
thetotalofroadis299.609375thetenthis0.097656meter2022/11/622C语言程序设计基础教程5.4循环嵌套一个循环的循环体中有另一个循环称为循环嵌套。
这种嵌套过程可以有很多重。
一个循环外面仅包围一层循环称为二重循环;一个循环外面包围两层循环称为三重循环;一个循环外面包围多层循环称为多重循环。
循环嵌套的层数理论上无限制。
2022/11/623C语言程序设计基础教程在使用循环嵌套时应注意以下几点:
(1)在嵌套的各层循环中,应使用复合语句(即用一对花括号将循环体语句括起来),以保证逻辑上的正确性;
(2)内层和外层循环控制变量不应同名,以免造成混乱;(3)嵌套循环最好采用右缩进格式书写,以保证层次的清晰性;(4)循环嵌套不能交叉,即在一个循环体内必须完整地包含另一个循环。
循环嵌套执行时,先由外层循环进入内层循环,并在内层循环终止之后接着执行外层循环,再由外层循环进入内层循环。
当外层循环全部终止时,程序结束。
5.4循环嵌套2022/11/624C语言程序设计基础教程【例5-11】打印九九乘法口诀表。
#includestdio.hmain()inti,j;for(i=1;i=9;i+)for(j=1;j=i;j+)printf(%d*%d=%-3d,j,i,i*j);printf(n);程序运行结果如下:
1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=165.4循环嵌套2022/11/625C语言程序设计基础教程5.5几种循环的比较几种循环的比较如下:
(1)3种循环都可以用来处理同一个问题,一般可以互相代替。
(2)while和do-while循环,循环体中应包括使循环趋于结束的语句。
for语句功能最强。
(3)用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成,而for语句可以在表达式1中实现循环变量的初始化。
(4)while循环、do-while循环和for循环,可以用break语句跳出循环,用continue语句结束本次循环(break语句和continue语句见5.6节)。
2022/11/626C语言程序设计基础教程5.6break语句和continue语句5.6.1break语句当break语句用于while、do-while、for循环语句中时,可使程序终止循环而执行循环后面的语句。
1)格式:
if(表达式)(表达式)break;2)执行过程:
while(表达式(表达式1)if(表达式(表达式2)break;2022/11/627C语言程序设计基础教程【例5-14】读入5个正整数并且显示它们。
当程序读入的数据为负数时,程序立即终止。
#includestdio.hmain()inti,n;for(i=1;i=5;i+)printf(pleaseentern:
);scanf(%d,&n);if(n0)break;printf(n=%dn,n);printf(Programisover!
n);5.6break语句和continue语句程序运行结果如下:
pleaseentern:
10n=10Pleaseentern:
-10Programisover!
2022/11/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 控制 结构 程序设计