C语言中的三种循环
在C语言中循环可分为3中,while循环、do - while循环、for 循环。
一、while循环
while即:首先检查启动循环的条件是否满足,当条件满足时,不断地重复循环体内的语句,直到不满足条件就退出。
二、do while 循环
do while 即:进入do while 前不做检查,而是在执行完一轮循环后再来检查循环的条件是否满足,如果满足则继续下一轮循环,不满足则结束循环。
三、for 循环
for循环类似一个计数循环,设定一个计数器,初始化它,然后在计数器到达某值之前重复执行循环体,同时每执行一轮循环,计数器值以一定步进进行调整。
三种循环基本语句:1、while循环语句,语法“while(表达式){语句块}”;2、do-while循环语句,语法“do{语句块}while(表达式);”;3、for循环语句,语法“for(初始化语句;循环条件;自增或自减){语句块}”。
本教程操作环境:windows7系统、c99版本、Dell G3电脑。
c语言中用于实现循环结构的三种基本语句是:while循环语句、do-while循环语句、for循环语句。
教程推荐:《c语言教程视频》
while循环语句
while循环的一般形式为:
1
2
3
while(表达式){
语句块
}
意思是,先计算“表达式”的值,当值为真(非0)时, 执行“语句块”;执行完“语句块”,再次计算表达式的值,如果为真,继续执行“语句块”……这个过程会一直重复,直到表达式的值为假(0),就退出循环,执行 while 后面的代码。
我们通常将“表达式”称为循环条件,把“语句块”称为循环体,整个循环的过程就是不停判断循环条件、并执行循环体代码的过程。
用 while 循环计算1加到100的值:
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
int main(){
int i=1, sum=0;
while(i<=100){
sum+=i;
i++;
}
printf("%d ",sum);
return 0;
}
运行结果:
1
5050
代码分析:
1) 程序运行到 while 时,因为 i=1,i<=100 成立,所以会执行循环体;执行结束后 i 的值变为 2,sum 的值变为 1。
2) 接下来会继续判断 i<=100是否成立,因为此时 i=2,i<=100 成立,所以继续执行循环体;执行结束后 i 的值变为 3,sum 的值变为3。
3) 重复执行步骤 2)。
4) 当循环进行到第100次,i 的值变为 101,sum 的值变为5050;因为此时 i<=100 不再成立,所以就退出循环,不再执行循环体,转而执行while循环后面的代码。
while 循环的整体思路是这样的:设置一个带有变量的循环条件,也即一个带有变量的表达式;在循环体中额外添加一条语句,让它能够改变循环条件中变量的值。这样,随着循环的不断执行,循环条件中变量的值也会不断变化,终有一个时刻,循环条件不再成立,整个循环就结束了。
如果循环条件中不包含变量,会发生什么情况呢?
1) 循环条件成立时的话,while 循环会一直执行下去,永不结束,成为“死循环”。
2) 循环条件不成立的话,while 循环就一次也不会执行。
do-while循环
除了while循环,在C语言中还有一种 do-while 循环。
do-while循环的一般形式为:
1
2
3
do{
语句块
}while(表达式);
do-while循环与while循环的不同在于:它会先执行“语句块”,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次“语句块”。
用do-while计算1加到100的值:
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
int main(){
int i=1, sum=0;
do{
sum+=i;
i++;
}while(i<=100);
printf("%d ", sum);
return 0;
}
运行结果:
1
5050
注意while(i<=100);最后的分号;,这个必须要有。
for循环语句
除了while循环,C语言中还有 for 循环,它的使用更加灵活,完全可以取代 while 循环。
for 循环的一般形式为:
1
2
3
for(表达式1; 表达式2; 表达式3){
语句块
}
它的运行过程为:
1) 先执行“表达式1”--“初始化语句”。
2) 再执行“表达式2”--“循环条件”;如果它的值为真(非0),则执行循环体,否则结束循环。
3) 执行完循环体后再执行“表达式3”--“自增或自减”。
4) 重复执行步骤 2) 和 3),直到“表达式2”的值为假,就结束循环。
上面的步骤中,2) 和 3) 是一次循环,会重复执行,for 语句的主要作用就是不断执行步骤 2) 和 3)。
“表达式1”仅在第一次循环时执行,以后都不会再执行,可以认为这是一个初始化语句。“表达式2”一般是一个关系表达式,决定了是否还要继续下次循环,称为“循环条件”。“表达式3”很多情况下是一个带有自增或自减操作的表达式,以使循环条件逐渐变得“不成立”。
for循环的执行过程可用下图表示:
1.jpg
用for语句计算1加到100的值:
1
2
3
4
5
6
7
8
9
#include <stdio.h>
int main(){
int i, sum=0;
for(i=1; i<=100; i++){
sum+=i;
}
printf("%d ",sum);
return 0;
}
运行结果:
1
5050
代码分析:
1) 执行到 for 语句时,先给 i 赋初值1,判断 i<=100 是否成立;因为此时 i=1,i<=100 成立,所以执行循环体。循环体执行结束后(sum的值为1),再计算 i++。
2) 第二次循环时,i 的值为2,i<=100 成立,继续执行循环体。循环体执行结束后(sum的值为3),再计算 i++。
3) 重复执行步骤 2),直到第101次循环,此时 i 的值为101,i<=100 不成立,所以结束循环。