程序设计基础 教学课件 ppt 作者 C语言 教学课件 ppt 作者 杨俊清_ 第5章

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

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

1、第5章 循环结构程序设计,5.1 循环流程控制语句 5.2 循环嵌套 5.3 break语句和continue语句 5.4 循环结构程序设计举例 习题,5.1 循环流程控制语句 根据循环结构具体形式的差异,C语言中循环结构常用的三种语句为:while循环语句、do-while循环语句和for循环语句。 5.1.1 while语句 while语句是用来实现“当型”循环控制的语句。,1一般形式 while(表达式) 语句; 或 while(表达式) 语句序列; 其中:表达式称为“循环条件”,语句(一条语句)或语句序列(复合语句部分)称为“循环体”。,2执行过程 while语句的执行过程可以用图5-

2、1描述。首先计算表达式的值,如果表达式的值为“假”(表达式的值等于0),则退出循环;如果值为“真”(非0),则执行循环体中的语句。执行完后,再次计算表达式的值,然后根据表达式值的情况决定是退出循环,还是继续执行循环体中的语句。,图5-1 while语句执行过程,3特点 先判断表达式,后执行语句。 下面结合一个实例学习while语句的使用。 例5-1 求解1+2+3+100的值。 分析:在用程序设计语言求解1+2+3+100的值时,问题中隐含了计算中取值的范围是1,100,当超出这个范围时,运算就结束。所以在设置变量时,除了设置存放计算结果的变量count外,还要设置一个循环变量i,用来存放11

3、00。,/*源程序5-1*/ #include main( ) int i,count; /*变量定义及初始化*/ i=1; count=0; /*存放计算结果的变量初始值为0*/ while(i=100) /* 循环条件:i=100 */, /*循环体部分*/ count=count +i; i+; printf(“1+2+3+100=%dn“,count); 程序运行结果如下:,说明: (1) 在while结构中,循环体包含一条以上的语句时,应该用括起来,否则while语句只执行跟在while后面的第一条语句。 (2) 循环体中必须包含对循环条件有影响的语句,如果没有这样的语句,会形成无限

4、循环(死循环)。 例如在上述程序中,循环体中语句i+ 就影响着循环条件i的值,即每执行一次循环体,i的值增加1,这保证了执行一定次数后,i的值就会变为101,此时循环条件中表达式的值为假,结束循环,执行循环语句后边的语句。如果无此语句,则i的值始终保持不变,循环变成无限循环。,在C语言中,循环条件一般是关系表达式、逻辑表达式,或者由关系运算符和逻辑运算符组成的混合表达式。循环条件也可以是1。当循环条件为1时,整个循环变为死循环,例如: while(1) 语句序列; (3) 循环体中可以是空语句,只有分号,不进行任何操作。 (4) 程序中的变量i称为循环变量。,5.1.2 do-while语句

5、do-while循环又称为“直到型”循环结构。 1一般形式 do 语句序列; while(表达式);,说明: (1) do是C语言的关键字,必须同while联系使用。 (2) do-while循环由do开始,由while结束,所以while(表达式)后边的“;”不能少,它表示do-while循环语句的结束。 (3) 同while语句中循环体一样,do后面可以是一条语句,也可以是多条语句。当为多条语句时,需要用 括起来,组成复合语句。,2执行过程 do-while语句的执行过程可以用图5-2描述。首先执行循环体中的语句序列,然后计算while后边的表达式。如果表达式的值为“假”(为0),则退出循

6、环结构;如果表达式的值为“真”(非0),则继续执行循环体,执行后继续计算表达式的值。如此反复,直到表达式的值为假。,图5-2 do-while语句的执行过程,3特点 先执行语句,后判断表达式的值。 下面结合一个实例学习do-while语句的使用。 例5-2 输入一行字符,分别统计出其中英文字母、空格、数字以及其他字符的个数。 分析:对于任何一个字符,在内存中都是以字符的ASCII码的二进制形式存放的,该存放形式与整型数的存储形式类似,这使得字符型数据和部分整型数据之间可以通用。所以要统计英文字母、空格、数字以及其他字符的个数,可以采用对输入的每个字符进行比较的方法来进行统计。,/*源程序5-2

7、*/ #include main( ) char c; /*设置存放不同字符个数的变量*/ int letter=0,digit=0,space=0,otherch=0; printf(“nPlease Input a line character:n“); scanf(“%c“, /*循环变量c的初始化*/ while(c!=n) /*结束统计的条件*/ ,if(c=a,scanf(“%c“, ,程序运行结果如下:,4while语句和do-while语句的区别 与while语句需要先判断表达式的值是否为真(非0)来决定是否进入循环体不同,do-while循环语句先执行一次循环体,然后才计算表

8、达式的值。因此,do-while循环体中的语句无论表达式的值是否为真(非0),至少都要执行一次;而while循环体中语句的执行要根据表达式的值来决定。,5.1.3 for语句 C语言中的for语句使用最为灵活,也是程序控制结构中使用最为广泛的一种循环控制语句。它不仅可以用于循环次数已经确定的情况,也适合于循环次数不确定而循环结束条件已知的情况。 1一般形式 for语句特别适合解决循环次数已知的问题。for语句的一般形式为: for(表达式1;表达式2;表达式3) 循环体;,其中:for是C语言的关键字;表达式1、表达式2、表达式3之间用“;”隔开。 在for语句的一般形式中,将循环结构需要注意

9、的问题都包含在其中: (1) 变量的初始化:表达式1; (2) 循环结束的条件:表达式2; (3) 循环控制变量的更新(使循环趋向于结束的语句):表达式3。,2执行过程 for语句的执行过程可以用图5-3描述。其执行过程如下: (1) 先求解表达式1。 (2) 求解表达式2的值,如果值为真(非0),则执行for循环体中的内嵌语句,然后执行第(3)步;如果值为假(0),则结束循环,转到第(5)步。 (3) 如果表达式2的值为真(非0),则执行for循环体中的内嵌语句后,求解表达式3。 (4) 跳转到第(2)步继续执行。 (5) 执行for语句下面的一条语句。,图5-3 for语句的执行过程,3f

10、or语句最简单的应用形式 for(循环变量赋初值;循环条件;循环变量增量) 语句序列; ,例如: for(i=0;i=100;i+) count = count +i; 该实例用while语句实现: i=1; while(i=100) count = count+i; i+; ,由此可见,for循环结构可以用while语句进行改写,以实现同样的功能。改写后一般格式为: 表达式1; while(表达式2) 语句序列; 表达式3; ,说明: (1) for语句中,表达式1的内容可以省略,但是表达式1后边的“;”不能省略;表达式1如果省略,则必须在for语句的前面给变量赋相应初值。 例如: i=1;

11、 for( ;i=100;i+) count = count+i; 此时,程序的执行过程是直接跳过“求解表达式1”,其他步骤不发生变化。,(2) 表达式2的内容一般情况不能省略,如果省略,则循环将无终止地进行下去,即系统认为表达式2的值始终为“真”(非0)。 例如: for(i=1; ;i+) count = count +i; 该语句相当于: while(1) /*无限循环*/ count = count+i; i+; ,当表达式2省略后,如果还想计算出结果,则需要使用break语句(break语句将在本章5.3节进行介绍)对程序进行如下的修改: for(i=1; ;i+) if(i =10

12、0) /*表达式2的内容用if的条件代替*/ break; /*break语句*/ else count = count +i; ,(3) 表达式3的内容也可省略,但此时必须在其他位置(如循环体)安排使循环趋向于结束的操作。 例如: for(i=1;i=100 ; ) count = count +i; i+; /*该条语句放置在循环体中*/ (4) 三个表达式都可以省略,此时,表达式1和表达式2后边的“;”不能省略。,例如: for( ; ; ) 语句; 程序变成如下形式: i=1; /*循环变量赋初值*/ for ( ; ; ) if (i =100) break; /*循环出口*/ co

13、unt = count +i; i+; /*修改循环变量的值*/ ,(5) 表达式1中可以是设置循环变量初始值的赋值表达式,也可以是与循环变量无关的其他表达式。 例如: for( i=1,j=2;i=100;i+) count = count+i+j; 表达式1和表达式3可以是一般的表达式,也可以是逗号表达式。 例如: for( i=1,j=100;i=j;i+,j-) m=i*j;,(6) 表达式2一般是关系表达式或逻辑表达式,也可以是数值表达式或字符表达式。事实上,只要表达式的值为非0,就执行循环体。 例如: for(;( c=getchar()!=n;i+=c) printf(“%c“,

14、c);,(7) 跟选择结构的语句一样,for语句的后边一般没有语句结束符 “;”,如果添加分号,则表示该循环体中只有一条空语句,整个for语句只有完成对循环变量值的改变操作,后边的“ ”中的语句就变成紧随for语句后的一条复合语句。 例如以下程序: for(i=1,count=0;i=100;i+) count = count +i; 执行结束后,变量count的值等于5050。,而以下程序: for(i=1,count=0;i=100;i+); count = count +i; 执行结束后,变量count的值等于101。 下面结合一个实例学习for语句的使用。,例5-3 编写程序计算n!=

15、1*2*3*n的值。 分析:求阶乘和求累加的运算处理过程类似。在程序中变量i从1增加到n,每次的增量为1。如果设置变量m来存放连乘的乘积,m=m*i。在此过程中,m的初始值不能设置为0,必须设置为1,否则整个运算结果都是0。,/*源程序5-3*/ #include main( ) int i,m,n; m=1; printf(“nPlease input the number n:n“); scanf(“%d“, ,程序运行结果如下: for语句在数学计算中的使用相对比较方便,尤其是针对有取值范围的算式。,例5-4 编写程序求解: 分析:整个算式由四个求和运算的算式组成,而且每个算式取值的范围已给定,因而选用for语句解决该问题就简单。对于后两个算式,因为有除法存在,因此在定义变量时,不能使用整型,否则,后两个算式的结果就等于0,失去计算的意义。,

展开阅读全文
相关资源
相关搜索

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

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