计算机二级C语言 第5章 循环结构

上传人:ji****72 文档编号:48557730 上传时间:2018-07-17 格式:PPT 页数:34 大小:490.50KB
返回 下载 相关 举报
计算机二级C语言 第5章  循环结构_第1页
第1页 / 共34页
计算机二级C语言 第5章  循环结构_第2页
第2页 / 共34页
计算机二级C语言 第5章  循环结构_第3页
第3页 / 共34页
计算机二级C语言 第5章  循环结构_第4页
第4页 / 共34页
计算机二级C语言 第5章  循环结构_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《计算机二级C语言 第5章 循环结构》由会员分享,可在线阅读,更多相关《计算机二级C语言 第5章 循环结构(34页珍藏版)》请在金锄头文库上搜索。

1、第5章 循环结构本章要点: 5.1 while语句和用while语句构成的循环结构 5.2 do-while语句和用do-while语句构成的循环结 构 5.3 for语句和用for语句构成的循环结构 5.4 循环结构的嵌套 5.5 break和continue语句在循环体中的作用 5.6 程序举例5.1.1 while循环的一般形式由while语句构成的循环也称“当”循环,While语句 的一般形式为: While(表达式)循环语句; 以下是几点说明: 1while是C语言的关键字。 2while后的表达式,可以是C语言中任意合法的 表达式,通常为关系表达式或逻辑表达式,但也 可以是其他运算

2、表达式。当表达式的值为零时, 表示条件为假;非零时,表示条件为真。3循环体可以是一条简单可执行语句,也可以是复 合语句。 4如果第一次计算时表达式的值就为0,则循环语 句一次也不被执行,流程直接跳过While语句,执 行下一条语句。重点提示:while型循环语句中循环体的执行 次数可以从0到无穷。若第一次计算表达式的值为 0,则循环体执行0次;若表达式恒为真,则陷入 死循环。5.1.2 while循环的执行过程while循环的执行过程是:计算while后表达式的值, 当值为非零时,执行循环体中的语句; 当值为零时,退出while循环。注意:进入while循环后,一定要有能使此表达式的值变为0的

3、操作,否则,循环 将会无限制的进行下去,即进入死循环。在程序设计中,这个是不允许出现 的。例如:计算1+2+3+100。 main() int i,sum=0;i=1;while(i100时,循环条件就不满足,循环到此结 束。如果无此语句,则i的值一直不变,循环永不 结束,这就称为“死循环”。在程序设计中,是不 允许死循环出现的。重点提示:在循环体中应有使循环趋于结束 的语句。在程序设计中,是不允许死循环出现的 。5.2 do-while语句和用do-while语句构成的循环结构 5.2.1 do-while语句构成的循环结构do-while是另一种循环结构,它的一般形式 为:do循环语句;

4、while(表达式);以下是几点说明:1do是C语言的关键字,必须和while联合使用。 2在while(表达式)后的分号“;”不可丢,它表 示do-while语句的结束。 3while后括号中的表达式可以是任意合法的表达 式,由它来控制循环是否执行。 4do-while之间的循环体可以是一条可执行语句也 可以是由“”构成的符合语句。5.2.2 do-while循环的执行过程do-while语句的执行过程是:先执行一次指定 的循环语句,然后判断表达式的值,若表达式的 值为非0,再返回重新执行循环语句,如此重复, 直到表达式的值为0时才跳出循环语句,执行下一 条语句;若表达式的值为0,则不再返回

5、重新执行 循环语句,直接退出循环语句,执行下一条语句 。如图5.1(b)所示。do while语句的特点是:先执行语句,后判断 表达式的值。故do While语句又称“直到型”循环结 构。由于是先执行后判断,因此do while语句的 循环语句至少被执行一次。注意:while圆括号后面有一个分号“;”,书写时 不能丢。例如:用do while循环结构来计算1+2+3+100。 main() int i,sum=0;i=1;do sum+=i;i+; while(i=100);printf(“dn“,sum); 程序运行结果为: 5050可以看出,此例的结果与上节的例程结果是完全 相同的,也就是

6、说,对同一问题既可以用while语 句来处理,也可用do while语句来处理。在一般情 况下,用while语句和do while语句处理同一问题 时,若二者的循环体一样,运行结果也就一样。 但当while后面表达式的值一开始就为0时,两种 循环结构的结果是不相同的。 重点提示:do-while语句先执行语句,后判断 表达式的值。故do-while语句又称“直到型”循环结 构。由于是先执行后判断,因此do-while语句的循 环语句至少被执行一次。5.3 for语句和用for语句构成的循环结构 5.3.1 for语句构成的循环结构 for语句的一般形式为: for(表达式1;表达式2;表达式3

7、)循环语句; 以下是几点说明: 1表达式1一般为赋值表达式,用于进入循环之前 给循环变量赋初值。 2表达式2一般为关系表达式或逻辑表达式,用于 执行循环的条件判定,它与while、do while循环 中的表达式作用完全相同。 3表达式3一般为赋值表达式或自增、自减表达式 ,用于修改循环变量的值。for循环结构是几乎所有高级语言都提供的循 环控制结构。但C语言中的for语句使用最为 灵活,它不仅可以用于循环次数已经确定 的情况,而且可以用于循环次数不确定而 只给出循环结束条件的情况,因而它完全 可以代替while语句和do while语句。重点提示:表达式1、表达式2、表达式3都 必须为for

8、语句规定的合法的表达式。for语句的执行过程是: 先计算表达式1的值。 再计算表达式2的值,若其值为真,则 执行循环体一次;否则跳转第步。 然后计算表达式3的值。 转回上面第步。 结束循环,执行for语句下面一个语句 。5.3.2 for循环执行过程图5.2 for语句的执行流程图重点提示:在整个for语句 中,表达式1只计算一次, 表达式2和表达式3则可能 计算多次。循环体可能多 次执行,也可能一次都不 执行。5.3.3 有关for语句的说明 (1)for语句的一般形式中的“表达式1”可以省略,即: for(;表达式2;表达式3)循环语句; 但注意省略表达式1时,其后的分号不能省略。此时,应

9、在 for语句之前给循环变量赋初值。 (2)如果省略表达式2,即: for(表达式1;表达式3)循环语句; 则表示表达式2的值始终为真,循环将无终止地进行下去。 例如: for(i=1;i+)printf(“%d“,i); 将无限循环输出1,2,3,4,5,6,(3)如果省略表达式3,即: for(表达式1;表达式2;)循环语句; 此时,也将产生一个无穷循环。因此,程序设计者应另外设法保证循环 能正常结束,可以将循环变量的修改部分(即表达式3)放在循环语句 中控制。例如: for(i=1;i=100;) sum+=i;i+; 上述for语句中没有表达式3,而是将表达式3(i+)放在循环语句中,

10、 作用相同,都能使用循环正常结束。注意表达式2后面的分号不能省略 。 (4)也可以同时省略表达式1和表达式3,即: for(;表达式2;)循环语句; 也即省略了循环的初值和循环变量的修改部分,此时完全等价于while 语句。(5)同时省略表达式1、表达式2和表达式3,即: for(;)循环语句;相当于赋循环变量的初值,循环控制条件始终为真,不修 改循环变量,故循环将无终止地进行下去。 (6)在for语句中,表达式1和表达式3不仅可以使用简单表 达式,也可以使用逗号表达式,即包含一个以上的简单表 达式,中间用逗号间隔。在逗号表达式内按自左至右求解 ,整个表达式的值为其中最右边的表达式的值。例如:

11、for(i=1;i=100;i+,sum=sum+i)相当于for(i=1;i=100;i+)sum=sum+i; (7)在for语句中,表达式一般为关系表达式或逻辑表达式 ,但也可以是其他表达式(如字符表达式、数值表达式) 。(8)for语句的循环语句可以是空语句。空语句用来实现延 时,即在程序执行中等待一定的时间。如下为延时程序的 例子: for(i=1;i=1000;i+); 注意以上语句最后的分号不能省略,它代表一个空语句。 例如:用for循环结构来计算1+2+3+100。 main() int i,sum=0;for(i=1;i=100;i+)sum+=i;printf(“%dn“,

12、sum); 程序运行结果为: 5050可以看出,此例的结果前两例是完全相同的。显 然,用for语句简单、方便。重点提示:for语句中的表达式可以部分或全部 省略,但两个分号不能省略,且三个表达式均省略 时,循环将会无限制执行,而形成死循环。因此, 编写程序时,在for后面的一对圆括号内,应只含有 能对循环进行控制的表达式,其它的操作尽量放在 循环体内完成。5.4 循环结构的嵌套1循环嵌套的形式在一个循环体内又完整地包含了另一个 循环,称为循环嵌套。循环的嵌套可以是 多层,但每一层循环在逻辑上必须是完整 的。例如以下几种形式的二重嵌套。 while与while二重嵌套while()while()

13、 do while与do while二重嵌套 do do while(); while(); for与for二重嵌套 for(;) for(;) while与while二重嵌套2关于循环嵌套的几点说明(1)三种循环语句不仅各自可以嵌套,而且还 可以互相嵌套。例如: while与do while二重嵌套 while()dowhile; while与for二重嵌套 while()for(;) do while与for二重嵌套 do for(;) while();(2)使用嵌套时,应注意一个循环结构应完整地嵌套在另一个循环体内,不允 许循环体间交叉。例如以下循环结构是不正确的: while()dow

14、hile(); (3)除了上述二重嵌套外,还可以有三重嵌套、四重嵌套等多层嵌套。 (4)嵌套的外循环和内循环的循环控制变量不得同名,但并列的内、外循环允 许有同名的循环控制变量。例如以下为合法的循环结构: for(j=1;j=10;j+) for(i=1;i=10;i+)for(i=1;i=10;i+) 3循环嵌套程序举例 利用双层for循环结构打印出99乘法表。 main()int i,j;for(i=1;i10;i+)printf(“%5d“,i);printf(“n“);for(i=1;i=46;i+)printf(“-“);printf(“n“);for(i=1;i10;i+)for(

15、j=1;j=9;j+)printf(“%5d“,i*j);printf(“n“);程序运行结果为:1 2 3 4 5 6 7 8 9 - -1 2 3 4 5 6 7 8 92 4 6 8 10 12 14 16 183 6 9 12 15 18 21 24 274 8 12 16 20 24 28 32 365 10 15 20 25 30 35 40 456 12 18 24 30 36 42 48 547 14 21 28 35 42 49 56 638 16 24 32 40 48 56 64 729 18 27 36 45 54 63 72 81(1)第45行和第78行为两个并列的for循环结构 ,作用是输出运行结果的第1行和第2行。 (2)第6行和第9行的“prin

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

当前位置:首页 > 行业资料 > 其它行业文档

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