首页 > 编程笔记 > C语言笔记 阅读:14

C语言for循环语句的用法(非常详细)

在 C语言中,除了 while 和 do while,使用 for 语句也可以实现循环结构。

for 循环语句的一般形式如下:
for(表达式1;表达式2;表达式3)
{
    语句块;
}
有以下几点说明:
从一般形式来看,每条 for 语句包含 3 个用分号隔开的表达式。这 3 个表达式用一对圆括号标识,其后紧跟着语句块。

for语句的执行流程如下图所示:


图 1 for语句的执行流程图

通过图 1 和上面对 for 语句的介绍可知,for语句里有 3 个表达式,它的执行步骤如下:

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;
}

相关文章