C语言for循环语句的用法(非常详细)
在 C语言中,除了 while 和 do while,使用 for 语句也可以实现循环结构。
for 循环语句的一般形式如下:
从一般形式来看,每条 for 语句包含 3 个用分号隔开的表达式。这 3 个表达式用一对圆括号标识,其后紧跟着语句块。
for语句的执行流程如下图所示:

图 1 for语句的执行流程图
通过图 1 和上面对 for 语句的介绍可知,for语句里有 3 个表达式,它的执行步骤如下:
for 语句简单的应用形式如下:
for 语句中省略表达式 1 的示例代码如下:
例如,在表达式 1 处为变量 iSum 和 iCount 设置初值,代码如下:
for 循环语句的一般形式如下:
for(表达式1;表达式2;表达式3) { 语句块; }有以下几点说明:
- for 是循环结构中的关键字之一。
- 表达式 1 通常用于给循环变量赋初值。当然,也允许在 for 语句外给循环变量赋初值,此时可以省略此表达式。
- 表达式 2 通常是循环检验的条件,用来决定是否继续执行 for 后紧跟的语句块,一般是关系表达式和逻辑表达式。表达式 2 也可以省略,要是省略表达式 2,这样的循环就会变成无限循环。
- 表达式 3 通常可用来修改变量的值,一般是赋值语句或自增/自减表达式。如果在语句块中写修改变量的语句,那么表达式 3 也可以省略。
- 语句块可以是一条语句,也可以是任意合法的复合语句(复合语句包含{})。
- 各表达式之间用分号隔开。
从一般形式来看,每条 for 语句包含 3 个用分号隔开的表达式。这 3 个表达式用一对圆括号标识,其后紧跟着语句块。
for语句的执行流程如下图所示:

图 1 for语句的执行流程图
通过图 1 和上面对 for 语句的介绍可知,for语句里有 3 个表达式,它的执行步骤如下:
- 步骤 1:计算表达式 1 的值;
- 步骤 2:计算表达式 2 的值,若结果值是真值,执行步骤 3;若结果值是假值,执行步骤 5;
- 步骤 3:执行一次 for 后紧跟的语句块;
- 步骤 4:计算表达式 3 的值,执行步骤 2;
- 步骤 5:结束循环,执行 for 语句之外的语句。
for 语句简单的应用形式如下:
for(循环变量赋初值;循环条件;循环变量) {语句块;}
【实例】用 for 语句计算 1~20 的和。具体代码如下:#include<stdio.h> int main() { int number; // 起始数字为1 int sum = 0; // 初始时和为0 for (number = 1; number <= 20; number++) //循环数字1~20 { sum = sum + number; // 从1开始求和 } printf("1~20的和等于%d\n", sum); //输出最后相加的结果 return 0; //程序结束 }运行结果如下:
1~20的和等于210
for循环的变体
通过前面的学习可知,for 语句的一般形式中有 3 个表达式。在实际的程序编写过程中,这 3 个表达式可以根据实际情况省略,接下来对不同情况进行讲解。1) for语句中省略表达式1
for 语句中第一个表达式的作用是对循环变量设置初值。如果省略 for 语句中的表达式 1,就需要在执行 for 语句之前给循环变量赋值。for 语句中省略表达式 1 的示例代码如下:
int number = 1; for (; number <= 20; number++) { // 省略表达式1 sum = sum + number; }
省略表达式 1 时,其后的分号不能省略。
2) for语句中省略表达式2
如果省略表达式 2,即不判断循环条件,则循环将无止境地进行下去,即默认表达式 2 始终为真。例如:int number; for (number = 1; ; number++) { // 省略表达式 2 sum = sum + number; }上述 for 语句中表达式 2 是空缺的,这样就相当于使用 while 语句,代码如下:
int number = 1; while (1) { // 循环条件永远为真 sum = sum + number; number++; }从 while 语句的判断条件可以看出,如果表达式 2 空缺,则程序将无限循环下去。
3) for语句中省略表达式3
for 语句中的表达式 3 也可以省略。例如:int number; for (number = 1; number <= 20;) { // 省略表达式3,但通常这里会是number++ sum = sum + number; }上面这段代码没有改变 number 变量值的代码,循环将会无止境地进行。如果想程序循环能正常结束,就应将代码改为如下形式:
int number; for (number = 1; number <= 20;) { // 省略表达式3,但通常这里会是number++ sum = sum + number; number++; // 这行代码通常需要在循环体中,以避免无限循环 }修改代码之后,程序循环就能正常结束。
for语句中逗号的应用
在 for 语句中的表达式 1 和表达式 3 处,除了可以使用简单的表达式,还可以使用逗号表达式,即包含一个以上的简单表达式,中间用逗号分隔。例如,在表达式 1 处为变量 iSum 和 iCount 设置初值,代码如下:
for (isum = 0, icount = 1; icount < 100; icount++) { isum = isum + icount; }或者执行两次循环变量自加操作,代码如下:
for (icount = 1; icount < 100; icount++, icount++) { isum = isum + icount; }