目录

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

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

https://i-blog.csdnimg.cn/direct/ba9a28fbf52f4472865b8622e96487de.png

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

C语言for循环的基本用法

for 循环语句的一般形式如下:

for(表达式1;表达式2;表达式3)
{
    语句块;
}

有以下几点说明:

  • for 是循环结构中的关键字之一。
  • 表达式 1 通常用于给循环变量赋初值。当然,也允许在 for 语句外给循环变量赋初值,此时可以省略此表达式。
  • 表达式 2 通常是循环检验的条件,用来决定是否继续执行 for 后紧跟的语句块,一般是关系表达式和逻辑表达式。表达式 2 也可以省略,要是省略表达式 2,这样的循环就会变成无限循环。
  • 表达式 3 通常可用来修改变量的值,一般是赋值语句或自增/自减表达式。如果在语句块中写修改变量的语句,那么表达式 3 也可以省略。
  • 语句块可以是一条语句,也可以是任意合法的复合语句(复合语句包含{})。
  • 各表达式之间用分号隔开。

从一般形式来看,每条 for 语句包含 3 个用分号隔开的表达式。这 3 个表达式用一对圆括号标识,其后紧跟着语句块。

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

https://i-blog.csdnimg.cn/img_convert/75d7500ab7e1870625bbd3a2ccd31eed.gif

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

https://i-blog.csdnimg.cn/direct/70135f8c6f4d4ed4a157e379be926383.png