目录
一、while语句
二、do…while语句
三、for语句
一、while语句
使用while语句可以执行循环结构,其一般形式如下:
while语句的执行流程图:
while语句首先检验一个条件,也就是括号中的表达式。当条件为真时,就执行紧跟其后的语句或者语句块。每执行一遍循环,程序都将回到while语句处,重新检验条件是否满足。如果一开始条件就不满足,则跳过循环体中的语句,直接执行后面的程序代码。如果第一次检验时条件满足,那么在第一次或其后的循环过程中,必须得有使条件为假的操作,否则循环将无法终止。
注意:无法终止的循环常被称为死循环或者无限循环。如下面这个例子:
在这段代码中,while语句首先判断iSum变量是否小于常量100,如果小于100,为真,那么执行紧跟其后的语句块;如果不小于100,为假,那么跳过语句块中的内容直接执行下面的程序代码。在语句块中,可以看到对其中的变量进行加1的运算,这里的加1运算就是循环结构中使条件为假的操作,也就是使得iSum不小于100,否则程序会一直循环下去。
示例1:计算1累加到100的结果
#include<stdio.h>
int main()
{
int i, sum; //定义变量
i = 1; //表示每一个数字
sum = 0; //表示计算总和
while (i <= 100) //使用while循环
{
sum = sum + i; //进行累积
i++; //增加数字
}
printf("结果为:%d\n", sum); //输出结果
return 0;
}
运行结果:
二、do…while语句
在有些情况下,不论条件是否满足,循环过程必须至少执行一次,这时可以采用do…while语句。do…while语句的特点就是先执行循环体语句的内容,然后判断循环条件是否成立。其一般形式如下:
do…while语句的执行流程图:
首先执行一次循环体语句中的内容,然后判断表达式,当表达式的值为真时,返回重新执行循环体语句。执行循环,直到表达式的判断为假时为止,此时循环结束。
注意1:
while语句和do…while语句的区别在于:while语句在每次循环之前检验条件,do…while语句在每次循环之后检验条件。(while结构中的while语句出现在循环体的前面,do…while结构中的while语句出现在循环体的后面),例如下面例子:
在上面的代码中,首先执行iNumber++的操作,也就是说,不管iNumber是否小于100,都会执行一次循环体中的内容。然后判断while后括号中的内容,如果iNumber小于100,则再次执行循环语句块中的内容;条件为假时,执行下面的程序操作。
注意2:在使用do…while语句时,条件要放在while关键字后面的括号中,最后必须加上一个分号,这是许多初学者容易忘记的。
示例2:使用do…while语句计算1~100的累加结果
#include<stdio.h>
int main()
{
int i, sum; //定义变量
i = 1; //表示每一个数字
sum = 0; //表示计算总和
do
{
sum = sum + i; //进行累积
i++; //增加数字
}
while (i <= 100); //检验条件
printf("结果为:%d\n", sum); //输出结果
return 0;
}
运行结果:
三、for语句
for语句的一般形式如下:
每条for语句包含3个用分号隔开的表达式。这3个表达式用一对圆括号括起来,其后紧跟着循环语句或语句块。当执行到for语句时,程序首先计算第一个表达式的值,接着计算第二个表达式的值。如果第二个表达式的值为真,程序就执行循环体的内容,并计算第3个表达式;然后检验第二个表达式,执行循环;如此反复,直到第二个表达式的值为假,退出循环。
for语句的执行流程图:
对上述流程图可以总结为:
(1)求解表达式1。
(2)求解表达式2,若其值为真,则执行for语句中的循环语句块,然后执行步骤(3);若为假,则结束循环,转到步骤(5)。
(3)求解表达式3。
(4)回到上面的步骤(2),继续执行。
(5)循环结束,执行for语句下面的一个语句。
则for语句简单的应用形式如下:
例如实现一个循环操作:
示例3:使用for语句计算1~100的累加结果
#include<stdio.h>
int main()
{
int i, sum; //定义变量
sum = 0; //表示计算总和
for (i=1;i<=100;i++)
{
sum = sum + i;
}
printf("结果为:%d\n", sum); //输出结果
return 0;
}
运行结果: