C语言程序设计 教学课件 ppt 作者 李学军 第5章

上传人:E**** 文档编号:89381999 上传时间:2019-05-24 格式:PPT 页数:44 大小:448.50KB
返回 下载 相关 举报
C语言程序设计 教学课件 ppt 作者 李学军 第5章_第1页
第1页 / 共44页
C语言程序设计 教学课件 ppt 作者 李学军 第5章_第2页
第2页 / 共44页
C语言程序设计 教学课件 ppt 作者 李学军 第5章_第3页
第3页 / 共44页
C语言程序设计 教学课件 ppt 作者 李学军 第5章_第4页
第4页 / 共44页
C语言程序设计 教学课件 ppt 作者 李学军 第5章_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《C语言程序设计 教学课件 ppt 作者 李学军 第5章》由会员分享,可在线阅读,更多相关《C语言程序设计 教学课件 ppt 作者 李学军 第5章(44页珍藏版)》请在金锄头文库上搜索。

1、2019/5/24,C语言程序设计,1,第5章 循环结构的C程序设计,主要内容 循环语句 break语句和continue语句 循环的嵌套 几种循环的比较 循环结构的C程序设计举例 核心知识点 语言的goto语句、while语句、do-while语句、for语句、break语句和continue语句的特点和使用方法 如何构成、分析和调试循环结构程序,2019/5/24,C语言程序设计,2,第5章 循环结构的C程序设计,重点难点 while、do-while和for语句的特点和使用技巧 循环的嵌套 学习目标 了解用goto语句构成循环结构的方法 了解循环概念和循环执行过程 理解控制循环表达式的描

2、述形式 掌握while和do-while语句的特点和使用方法 掌握for语句的特点和使用方法 掌握break和continue语句的使用方法 掌握分析、调试循环结构程序的方法 掌握循环的嵌套 掌握循环结构程序设计的方法,2019/5/24,C语言程序设计,3,概述,现实生活中有许多需要重复进行的操作,例如100个数的累加和累乘,就要做100次相加和相乘的操作,每次运算的形式一样,只是相加、相乘的数不同而已。程序中对这类需要重复执行的操作一般使用循环结构来处理。循环控制结构常用于解决数学迭代、对象遍历等问题,几乎所有实用程序都包含循环结构。 循环结构也是结构化程序设计中的三种基本结构之一。C语言

3、提供了多种解决循环操作的语句。 根据循环不同的初始条件和终止条件,C语言实现循环的方式可分成以下几类: 1.用goto语句和if语句构成循环。 2.用while语句构成循环。 3.用do-while语句构成循环。 4.用for语句构成循环。,2019/5/24,C语言程序设计,4,5.1 goto 语句 5.2 while语句 5.3 do-while语句 5.4 for 语句 5.5 break语句与continue语句 5.6 循环的嵌套 5.7 几种循环语句的比较 5.8 循环结构的C程序设计举例,2019/5/24,C语言程序设计,5,1.一般格式:goto 语句标号; 如:goto

4、loop; 注:“语句标号”是一个标识符,可作为无条件转向语句goto的目标。语句标号的命名规则与变量名的命名相同,其第一个字符必须为字母或下划线,如:loop、a1、_abc等。在程序中语句标号可以和变量同名。 2.功能 当程序执行到goto语句时,就无条件转到语句标号所在的位置继续执行程序。 3.特点 使程序无条件转向,与if语句一起构成循环(否则构成的是死循环,要通过强制中断才能结束程序的运行),仅当if语句的条件不成立时结束循环。,5.1 goto语句,2019/5/24,C语言程序设计,6,4.说明 (1) goto语句和其所转向的语句标号必须在同一个函数体中; (2) goto语句

5、常用于在多层循环的内层跳到外层。若从循环体中跳到循环外,C语言一般用break语句和continue语句(在5.5中介绍)跳出本层循环和结束本次循环。 (3) goto语句不符合结构化程序设计准则,因为无条件转向使程序结构无规律、可读性差。一般应避免使用goto语句,但如果能大大提高程序的执行效率,也可以使用。,2019/5/24,C语言程序设计,7,main() int i=1; /*变量i用于统计求积的次数*/ long int s=1;/*用于存储积的变量s先清1*/ loop:if(i=10) s=s*i;i=i+1; goto loop; ,loop为语句标号。,【例5-1】 用go

6、to语句编程,求S=10!的值。,【分析】引入整型变量i表示求10的阶乘中的“乘数”,另用一长整型变量s(因考虑s的最终结果会超过普通整型数据的取值范围,故s变量采用长整型。)表示求10的阶乘中的“积”,在条件i=10时,实现相乘运算,否则,结束此乘法运算,输出所求的积(即变量s的值),结束程序的执行。,该语句部分称为循环体,当需要执行多条语句时,应使用复合语句。,S=3628800,运行结果为:,2019/5/24,C语言程序设计,8,【例5-2】 用if语句和goto语句构成循环,求 。,main() int sum = 0; /*用于存储和的变量sum先清零*/ int i = 1; /

7、*变量i用于统计求和的次数*/ loop:if(i = 100) sum = sum + i; /*累加*/ i+; goto loop; printf(“sum=%d“,sum); ,sum=5050,运行结果为:,该复合语句部分为循环体。,循环体内一定要有改变循环变量的语句。,2019/5/24,C语言程序设计,9,5.2 while语句,While循环是一种“当型”循环,循环条件在循环结构的开头部分。 1.一般格式 while(表达式) 循环体语句 如:while(i=10) s=s+i;i=i+1; 这里,变量i称为“循环变量”简称为“循变”,循环条件由循变i设定。当循环体语句仅由一条

8、语句构成时,可以不使用复合语句形式。 2.功能 当表达式的值为真时,执行while语句中内嵌的循环体语句,否则,执行while语句中的下一条语句。程序执行过程如图5-3所示。,为循环体,2019/5/24,C语言程序设计,10,3特点:先判断表达式的值,后执行循环体语句。,2019/5/24,C语言程序设计,11,【例5-3】 用while语句编程,求S=10!(即:S=1*2*3*4*5*6*7*8*9*10)的值。,main() int i=1; /*定义并初始化循环控制变量*/ long int s=1; /*定义并初始化累乘器*/ while(i=10) /*循环继续条件:i=10*/

9、 s=s*i;i+; /*累乘,循变i增1值*/ printf(“S=%ld”,s); /*输出累乘结果*/ ,为循环体,S=3628800,运行结果为:,循环体内一定要有改变循环变量的语句。,2019/5/24,C语言程序设计,12,【例5-4】 用while语句编程,求 的值。,main() int i=1; /*定义循环变量i,并初始化为1*/ int sum=0; /*将累加器sum初始化为0*/ while(i=100) sum=sum+i; /*实现累加*/ i+; /*循环变量增1*/ printf(“sum=%d”,sum); ,sum=5050,运行结果为:,循环体内一定要有

10、改变循环变量的语句。,2019/5/24,C语言程序设计,13,5.3 do-while语句,do-while循环是一种“直到型”循环,循环条件在循环结构的结束部分。 1一般格式 do 循环体语句 while(表达式) ;,“while (表达式);”中的分号不能少。,如: do s=s+i;i=i+1; while(i=10);,2功能 先执行一次指定的循环体语句,然后判别表达式,当表达式的值为真时,返回重新执行循环体语句,如此反复,直到表达式的值为假止,循环结束。程序执行过程如图5-4所示。,为循环体,2019/5/24,C语言程序设计,14,3特点: 先执行一次循环体语句,后判断循环条件

11、是否成立,当循环条件表达式为真时,再执行循环体语句,直到循环条件表达式为假时,循环结束。,图5-4 do-while语句的流程图,2019/5/24,C语言程序设计,15,【例5-5】 用do-while语句编程,求S=10!(即:S=1*2*3*4*5*6*7*8*9*10)的值。,main() int i=1; long int s=1; do s=s*i;i+; while(i=10); printf(“S=%ld”,s); ,为循环体,循环体内一定要有改变循环变量的语句。,循环继续条件,S=3628800,运行结果为:,2019/5/24,C语言程序设计,16,while循环与do-w

12、hile循环的比较,同一个问题,既可以用while循环处理,也可以用do-while循环处理。 在一般情况下,用while和do-while语句解决同一问题时,若二者的循环体部分是一样的,它们的结果也一样。但是当while后面的“表达式”一开始就为“假”时,两种循环的结果不同。这是因为此时while循环的循环体不被执行,而do-while循环的循环体被执行一次。 要区分循环体语句的执行次数。,“比较”示例,2019/5/24,C语言程序设计,17,【例5-6】 求i+(i+1)+(i+2)+(i+10),其中,i由键盘输入。(用while和do-while两种语句分别编写程序)。,说明:两种方

13、法中用到的循环体是一样的,且循环体的执行次数均为10次。不同的是所用的循环语句不同。特别强调:do-while循环中的while语句后的分号不能少。,Return,2019/5/24,C语言程序设计,18,如:for(i=1;i=100;i+) sum =sum + i; 等价于以下while语句: i=1; while(i= 100) sum=sum+i; i+; ,5.4 for语句,在循环语句中,for语句最为灵活,不仅可用于循环次数已经确定的情况,也可用于循环次数虽不确定、但给出了循环继续条件的情况。 1一般格式 for (表达式1;表达式2;表达式3) 循环体语句,表达式1为初始化循

14、环变量的赋值表达式;表达式2为判断循环继续的条件是否成立的逻辑表达式 ;表达式3为改变循环变量(增值或减值)的表达式。,执行过程示图,2019/5/24,C语言程序设计,19,图5-7 for语句的流程图,3功能 先执行表达式1,然后判别表达式2,当表达式2的值为真时,执行循环体语句及表达式3;否则,执行for语句中的下一条语句。程序执行过程如图5-7所示:,2019/5/24,C语言程序设计,20,4特点: 是最灵活的循环语句。先确定循环变量的初值(表达式1),判断条件的值(表达式2),后执行循环体语句,再更新循环变量的值。,【例5-7】 用for语句编程,求S=10!(即:S=1*2*3*

15、4*5*6*7*8*9*10)的值。,main() int i; /*定义循环变量类型*/ long int s=1;/*定义累乘器变量类型,并将累乘器s初始化为1*/ for(i=1;i=10;i+) s=s*i; printf(“S=%ld”,s); ,为循环体,表达式3改变循环变量i的值。,循环继续条件,2019/5/24,C语言程序设计,21,说明: (1) for语句使用非常灵活,可以省略“表达式1”、“表达式2”、“表达式3”中的部分表达式。(但分号不能省略),a. for语句中的“表达式1”可省略。 “表达式1”的作用是设定循环初始条件,“表达式1”省略后 应在for语句前面设置

16、循环初始条件。如: i=1; for(;i=10;i+) s=s*i;,bfor语句中“表达式2”一般不能省略。如果省略“表达式2”,则不判别循环条件,认为循环条件始终为“真”,循环将无终止地进行下去。如:,for(i=1; ;i+) sum = sum + i;,等价,i = 1; while (1) sum = sum + i;i+;,省略表达式1后,应在for语句前给循环变量赋初值。,2019/5/24,C语言程序设计,22,c表达式3可省略,但程序必须在循环体语句中设置循环变量增值,来修改循环条件,以确保循环能正常结束。如: for(sum=0, i=1;i=100; ) sum = sum + i; i+; ,省略表达式3后,在循环体内改变循环变量i的值。,d可省略“表达式1”和“表达式3”,只有“表达式2”。如:,i=1;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号