收藏 分享(赏)

C语言学习C6.ppt

上传人:依依 文档编号:1115322 上传时间:2018-06-12 格式:PPT 页数:24 大小:359KB
下载 相关 举报
C语言学习C6.ppt_第1页
第1页 / 共24页
C语言学习C6.ppt_第2页
第2页 / 共24页
C语言学习C6.ppt_第3页
第3页 / 共24页
C语言学习C6.ppt_第4页
第4页 / 共24页
C语言学习C6.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、循环结构程序设计,循环结构的概念 While语句的一般形式、流程图、执行过程 While语句的应用 Do-while 语句的一般形式、流程图、执行过程 Do-while 语句的应用,本讲内容,While 语句的执行过程及while语句的应用 Do-while语句的执行过程及while语句的应用,重点,while语句的应用 Do-while语句应用,难点,在许多问题中需要用到循环控制,例如,要输入全校学生成绩,求若干个数之和。迭代求根等。几乎所有实用的程序都包含循环。循环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构造单元。,1循环结构的概念,利用计算机重

2、复处理某些实际问题就构成了循环结构。在循环结构中将某些语句重复执行,这些语句称为循环体;每重复一次都要判断是继续重复还是停止重复,这个判断所依据的条件称为循环条件;循环体与循环条件一起构成了循环结构。,? 求 Sum=1+2+3+99+100,【分析】要完成上面的累加求和运算,设sum为累加和变量,i为循环控制变量,用于控制循环次数,也就是循环继续的条件,并且i由1变到100,实现上述算法的N-S图,【一般格式】while(表达式) 循环体语句 ,(while 语句是一种先判断后执行的循环语句.),【流程图及N-S图】,2While循环语句,/“表达式”一般为关系表达式或逻辑表达式。,/循环体

3、可以是单个语句,也可是多个语句;如果是多个语句必须使用大括号“ ”将多个语句括起来构成一个复合语句。,http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.xunchi- http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/www.51xiu.org/ http:/ http:/ http:/

4、http:/ http:/ http:/ 利用while语句“求1+2+4+5 ”的和参考程序如下:,【执行过程】,例2:利用while语句计算 n!(即:1*2*3*(n-1)*n),main( ) int i=1, n, s=1; scanf(“%d”, ,3dowhile语句 【一般格式】, 【流程图及N-S图】,循环体,真,假,表达式,do 循环体语句 while(表达式);,do - while 语句是一种先执行后判断的循环语句,【执行过程】 先执行循环体语句,再计算表达式的值,若表达式的值为真(非零),再执行循环体的语句;当表达式的值为假(零)时,结束循环。,【应用】用dowhil

5、e语句求1+2+3+99+100的和,main( ) int i, sum=0; i=1; do sum=sum+i; i+; while(i=100); printf(sum=%dn,sum); ,练习:用dowhile语句编程计算n!(即:1*2*3*n) 模仿上例同学们自己写出相应的程序。,4while与do-while语句的区别 while语句是先判断,后执行的循环语句;而do-while语句是先执行,后判断循环语句。 当第一次进行判断表达式的值时,表达式的值为假时,while语句不执行循环体语句,而转去执行循环结构的下一语句;而do-while语句先执行一次循环体语句,而后转去执行循

6、环结构的下一语句。 不论是while还是do-while语句构成的循环,在循环体中都应有修改循环控制变量值的语句,否则程序会进行无限循环状态。,for语句的一般格式、流程图、执行过程 for语句的应用 for语句的特殊形式 三种循环语句的比较 综合例题,本讲内容,for语句的执行过程及应用 for语句的执行过程及应用,重点难点,循环结构程序设计,1for语句 【一般格式】for(表达式1;表达式2;表达式3) 循环体语句;,【注意】循环体语句可以是单个语句,也可是复合语句或空语句。三个表达式之间用分号分隔.,表达式1:一般为循环控制变量赋初值的语句。表达式2:循环条件语句。表达式3:循环控制变

7、量变化语句。,【流程图及N-S图】,先计算表达式1的值;再计算表达式2的值,若为真, 则执行循环体,最后计算表达式3的值;再次计算表达式2的值,若为真,再执行循环体,再计算表达式3的值;,【应用】 利用for语句“求1+2+3+99+100的和”,main( ) int i, sum=0; for (i=1;i=100;i+) sum=sum+i; printf(sum=%dn,sum); ,【执行过程】,直到某次表达式2的值为假循环结束,执行循环的下一语句。, for循环的特殊格式 以【for (i=1;i=100;i+) 】 语句为例, 省略表达式1,语句格式为: for(;表达式2;表达

8、式3)】 i=1; for ( ;i=100;i+), 省略表达式2,语句格式为: for(表达式1;表达式3)】 for(i=1 ; ; i+) if(i=100) , 省略表达式3,语句格式为: for(表达式1;表达式2;)】 for (i=1 ;i=100;) i+; , 省略表达式1及3,语句格式为: for(;表达式2;) i=1; for ( ;i=100; ) i+; , 省略三个表达式,语句格式为: for(;) i=1; for ( ; ; ) if (i=100) i+; ,2三种循环语句的比较, while语句和for语句是属于先测试终止条件的循环语句,故循环体有可能一

9、次也不执行。 dowhile语句是后测试终止条件的循环语句,循环体至少执行一次。 for语句与while语句本质上相近,很容易互换。所有循环语句都是在终止条件为真时才能执行循环体。 如果循环次数可以在进入循环语句之前确定,使用 for语句较好;在循环次数难以确定时使用while和dowhile语句较好。,3例题,【例1】 从键盘上输入10个数,求出其中的最大值与最小值。,main( ) int i , x , max , min ; scanf(“%d” , ,main() int k; for(k=100;i=200;i+) if(k%7= =0) printf(%d , k); ,【例2】

10、 输出100到200之间可以被7整除的数。,Break语句及应用Continue语句及应用Break语句与Continue语句区别循环嵌套的概念及应用综合例题,循环结构程序设计,本讲内容,Break、Continue语句及循环嵌套的应用,循环嵌套的应用,重点,难点,【注意】break只能用于switch语句或循环语句中。在循环结构中通常用if语句与之配合使用。 Break语句只能从最内层循环跳到外层循环中。 【应用】例1 计算半径r=1到r=10的圆面积,直到面积大于100为止。,1Break语句 【一般格式】 break; 【功能】使程序的执行从包含它的最内层循环或switch 语句中跳出。

11、,main() int r; float area; for (r=1;r=100) break; printf(r=%d area=%fn,r,area); ,分析面积大于100时循环执行了几次,例1 计算半径r=1到r=10的圆面积,直到面积大于100为止。,2continue语句【一般格式】 continue;【功能】 结束本次循环,继续下一次循环。【注意】continue只用于循环结构中,通常与if语句配合使用。【应用】例2 输出100到200之间不能被7整除的数。,main() int n; for(n=100;n=200;n+) if(n%7= =0) continue; prin

12、tf(%dt, n); ,3break语句与continue语句区别 continue是结束本次循环,进行下一次循环,而不是结束整个循环过程。对单层循环,break语句是结束整个循环,转到循环体外;对于多层循环,则是结束最内层循环。4循环嵌套的概念及应用 当一个循环结构中包含另一个循环结构时,称为循环的嵌套或多重循环。,例4 编程输出乘法“九九表”。,main ( ) int m,n,k; for (m=1 ;m=9;m+) for(n=1;n=m;n+) printf(%d*%d=%d ,n,m,n*m); printf(n); ,5综合例题,分析下列程序,写出输出结果。,main() in

13、t a,b=1; for(a=1;a=20) break; if(b%3= =1) b+=3; continue; b-=5; printf(%d ,a); ,输出结果: 8,例6 从键盘上输入若干字符,以“#”号结束,统计其中字符A或a(包括大写字母或小写字母)的个数。,#include stdio.hmain() char ch; int k=0; while(ch=getchar()!=#) if(ch= =A | ch= =a) k=k+1; printf(%dn,k);,1、输入两个正整数m和n,求其最大的公约数和最小公倍数。2、输入一行字符,分别统计出其中英文字母、空格、数字、和其他字符的个数。3、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如153就是一水仙花数。 153=1 +5 +34、用二分法求下面方程在(-10,10)之间的根。 2x -4x +3x -6=0,思考与练习,3,3,3,3,2,

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

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报