C语言程序设计 循环结构程序设计

1 程序中需要循环结构

循环结构就是用来处理需要重复处理的问题,所以,循环结构又称重复结构。
一个有效的循环,应当指定两个条件:(1)循环体;(2)循环结束的条件,即在什么情况下停止重复操作。
C语言提供了三种循环结构语句,while语句、do…while语句和for语句。

2 用while语句和do…while语句实现循环

2.1 用while语句实现循环

求1到100整数和。
在这里插入图片描述

while语句的一般形式:while (表达式) 语句
当表达式为非0值时,执行while语句中的内嵌语句。
在这里插入图片描述
while循环的特点:先判断表达式,后执行循环体(内嵌语句)。

2.2 用do…while语句实现循环

求1到100整数和。
在这里插入图片描述

do…while语句一般形式:
do
循环体语句
while(表达式);
在这里插入图片描述
do…while语句的特点是先执行循环体,然后判断循环条件是否成立。

3 用for语句实现循环

求1到100整数和。
在这里插入图片描述

for语句用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。

3.1 for语句的一般形式和执行过程

一般形式: for(表达式1;表达式2;表达式3) 语句
for(循环变量赋初值;循环条件;循环变量增值) 语句
执行过程:
在这里插入图片描述

4 循环的嵌套

一个循环体内包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。
三种循环可以相互嵌套。如:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5 提前结束循环

5.1 用break语句提前退出循环

break语句一般形式:break;
break语句只用于循环语句和switch语句中。
break语句是结束整个循环过程
在这里插入图片描述

5.2 用continue语句提前结束本次循环

continue语句的一般形式:continue;
作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判断。
continue语句只结束本次循环。
在这里插入图片描述
例题:输入一个班学生的成绩,把不及格的学生成绩输出,并求出及格学生的平均成绩。
思路:把不及格的成绩输出,然后跳过后面总成绩的累加和求平均的语句,用continue语句即可处理此问题。
在这里插入图片描述

6 几种循环的比较

1 三种循环一把情况下都可以替换。
2 for循环在“表达式3”中使循环趋于结束的操作。
3 循环变量初始化在while和do…while语句之前完成。for语句在表达式1中实现循环变量的初始化。
4 三种循环语句都可以用break语句和continue语句。

7 循环程序综合举例

兔子繁殖问题

有一对兔子,生出后第3个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有兔子都不死,问40个月的兔子总数为多少?
兔子繁殖规律
在这里插入图片描述
注:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。
兔子总数为1,1,2,3,5,8,13…,这就是斐波那契数列。该数列的特点是第1、2两个数为1、1。从第3个数开始,该数是其前面两个数之和。
求斐波那契数列前40个数。
编写程序:
在这里插入图片描述
分析:
if语句的作用是使输出4个数后换行。

8 提高部分

8.1 while和do…while循环的比较

用while语句和用do…while语句处理同一个问题若二者的循环题部分是一样的,他们的结果也相同。
但是,如果while后的表达式一开始就为假(0值)时,两种循环的结果是不同的。
例题:求1到10的整数和。
用while语句
在这里插入图片描述

在运行一次,输入11。
在这里插入图片描述
用do…while语句
在这里插入图片描述
在这里插入图片描述
分析:
当输入的i小于或等于10时,二者结果相同。但当ii大于10时,二者结果不同。对while循环来说,当i<=10时为假,什么也没有执行,对do…while循环来说,当i<=10时为假,执行一次循环体。
结论:
当while后面表达式的第一次的值为“真”时,两种循环的到的结果相同,否则不相同。

8.2 for语句的各种形式

(1)表达式1可以省略,但表达式1后面的分号不能省略。如:
在这里插入图片描述
注意,此时应在for语句之前给循环变量i赋初始值(如i=1;),循环才能正常进行。
(2)表达式2省略,即不判断循环条件,循环会无终止地进行下去。也就是认为表达式2始终为“真”。
在这里插入图片描述
例如:
在这里插入图片描述
相当于
在这里插入图片描述
(3)表达式3可以省略,但需要另外设计才能保证循环正常结束。例如:
在这里插入图片描述
i++的操作不放在表达式3的位置,而作为在循环体的一部分,能使循环正常结束。
(4)可以省略表达式1和表示3,只有表达式2,即只给出循环条件。例如:
在这里插入图片描述
相当于
在这里插入图片描述
在这种情况下,完全等同于while语句。for语句可以给出循环条件,赋初值,是循环变量自动增值等。
(5)3个表达式都可以省略,例如:
for(; ; ) 语句
不设置初值,不判断循环条件是否满足,循环变量不增值,即无终止地执行循环体。
相当于
while(1) 语句
此循环条件始终为“真”(非0的数值代表“真”),即无终止地执行循环体。

(6)表达式1可以是与循环变量无关的其他表达式。例如:
在这里插入图片描述
(7)表达式3也可以是与循环控制无关的任意表达式。
(8)表达式1和表达式3可以是简单的表达式,也可以是逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。例如:
在这里插入图片描述
同时设两个初值,使两个变量增值。
都好表达式内按从左到右的顺序求解,整个逗号表示的值为最右边的表达式的值。
在这里插入图片描述
相当于
在这里插入图片描述
(9)表达式一般为关系表达式或逻辑表达式,也可以是数值表达式或字符表达式,只要其值为非0,就执行循环体。
在这里插入图片描述
执行流程:
在这里插入图片描述

9 小结

1 循环结构就是用来处理需要重复处理的问题,所以,循环结构又称重复结构。
2 一个有效的循环,应当指定两个条件:(1)循环体;(2)循环结束的条件,即在什么情况下停止重复操作。
3 C语言提供了三种循环结构语句,while语句、do…while语句和for语句。for循环用得最广泛、最灵活。
4 循环题有多于一个的语句,应用大括号{}把循环体中的多个语句括起来,形成复合语句。
5 continue语句只结束本次循环,break语句是结束整个循环过程。
6 循环可以嵌套。

猜你喜欢

转载自blog.csdn.net/qq_45059457/article/details/113915227