C 语言中的 For 循环

C 语言中的 For 循环用于在给定条件为 False 之前,重复执行一个语句块指定的次数。For 循环是任何编程语言中使用最频繁的循环之一。

如果您观察下面的语法,C 语言中的 for 循环有三个由分号(;)分隔的表达式,这些表达式的执行顺序如下:

  • 初始化:循环从初始化语句开始,因此首先完成计数器变量的初始化(例如,counter = 1 或 i = 1)。初始化部分只在循环开始时执行一次。
  • 测试条件:计数器变量的值将与测试条件进行比较。如果条件评估为 True,则会执行 For 循环内的语句。如果条件不成立,编译器将终止循环。
  • 递增和递减运算符:此表达式在每次迭代结束后执行。该运算符帮助我们根据需要增加或减少计数器变量。

C For 循环语法

该编程语言中 For 循环的语法如下:

for (initialization; test condition; increment/decrement operator)
 {
       //Statement 1
       //Statement 2
       ………
       //Statement n
 }

For 循环流程图

下面的截图将向您展示 C 语言 for 循环的流程图及其执行过程:

  1. 初始化:我们在这里初始化计数器变量。例如,i=1。
  2. 测试条件:它将检查计数器变量是否满足条件。如果条件为真,它将执行循环内的语句。如果条件评估为假,那么 C 语言程序将退出循环。
  3. 完成一次迭代后,它将执行循环内的递增和递减运算符来增加或减少值。
  4. 值增加后,它会再次检查条件。只要条件为真,循环内的语句就会一直执行。
For Loop FLOW CHART

C 语言中的 For 循环示例

这个 for 循环程序允许用户输入任意整数值。然后它将计算直到用户输入数字为止的自然数之和。

  1. 在这个 for 循环示例中,用户可以输入任何大于 1 的值(在本例中,我们输入 20),并且 total 变量被初始化为 0。
  2. 接下来,我们将用户输入的值赋给一个 number 变量。然后我们将检查计数器变量(i)是否小于或等于 number。
  3. 如果条件结果为真,i 会被加到 total 中。否则,循环将退出。在循环开始时,i = 1,n = 20;条件将一直为真,直到 i 的值增加到 21。
  4. 在下一部分中,我们使用 ++ 运算符来增加 i 的值。在递增过程之后,它将重复执行,直到条件结果为假(直到 i = 21)。
// Example
#include <stdio.h>

int main()
{
  int i, number, total= 0;

  printf("\n Please Enter any integer\n");
  scanf("%d", &number);
  
  for(i=1; i<= number; i++)
   {
     total = total + i;
   }

  printf("\nSum of n natural numbers is: %d\n", total); 
  return 0;
}

C 程序输出

For Loop in C Programming 1

C For 循环初始化特性

For 循环具有省略声明中一个或多个部分的灵活性。虽然我们可以跳过其中的一个或多个部分,但我们必须保留分号(;);否则,将会抛出编译错误。以下示例向您展示了 For 循环的特性。

可以跳过初始化计数器变量,如下所示:

int i=1;

for( ;i<=10;i++)

这里,计数器变量在循环之前声明。

与初始化一样,我们也可以跳过递增部分。

int i=1;

for( ;i<=20; )
 {
   //statements     
   i++;
 }

递增部分在循环体内声明。

第三种方法

C For 循环允许我们同时初始化多个计数器变量,用逗号分隔。

for(i=1,j=20;i<j; i++)

它还允许使用多个条件。我们必须使用逻辑运算符来分隔两个条件,而不是使用逗号。

for(i=1,j=20;i<=10 && j>=20; i++)
 {
   //statements
   j++;
 }

最后一种方法

与测试条件一样,for 循环允许我们使用多个递增运算符。

for(i=1,j=1; i<=10&& j<=10; i++, j++)

注意:在初始化、递增和递减运算符部分,我们可以使用逗号来分隔多个声明。您必须使用逻辑运算符来连接条件以分隔测试条件。

C 语言中的嵌套 For 循环

在本示例中,我们将向您展示如何将一个循环嵌套在另一个循环内部,这在该编程语言中也称为嵌套 for 循环。

// Example
#include <stdio.h>

int main()
{
 int i, j;

 for (i=9; i<=10; i++)
  {
   for (j=1; j<=10; j++)
    {
      printf("%d * %d = %d\n",i ,j, i*j);
    }
  }
 return 0;
}
Nested For Loop Example

此程序打印 9 和 10 的乘法表。在第一个循环中,i 初始化为值 9,然后它会检查 i 是否小于或等于 10。这个条件在 i 达到 11 之前一直评估为真。如果此表达式结果为真,则会进入第二个循环。否则,它将退出第一个循环。

C For 循环迭代 1:for (i = 9; i <= 10; i++)
条件 (9 <= 10) 为真。所以它将进入第二个循环。

嵌套循环的第一次迭代:(j = 1; j <= 10; j++)
表达式 (1 <= 10) 为真。所以循环内的语句将被打印。
9 * 1 = 9
接下来,j 的值将增加到 2。

嵌套循环的第二次迭代:(j = 2; 2 <= 10; 2++)
表达式 (2 <= 10) 为真。
9 * 2 = 9

这个过程将重复直到 j 达到 10。接下来 j 的值是 11,表达式 (11 <= 10) 不成立。所以编译器会退出嵌套或内部循环。它只会退出内部循环(第二个),而不会退出整个循环。

迭代 2:(i = 10; 10 <= 10; 10++)
表达式 (10 <= 10) 为真。所以它将进入第二个循环。

重复嵌套 for 循环的迭代。

迭代 3:(i = 11; i <= 10; i++)
i = 11,条件评估为假,因此循环终止。无需检查第二个循环。