原文: https://beginnersbook.com/2014/01/c-for-loop/

循环用于重复执行语句块,直到给定条件返回false

C for循环

这是 C 编程中最常用的循环之一。

for循环语法:

  1. for (initialization; condition test; increment or decrement)
  2. {
  3. //Statements to be executed repeatedly
  4. }

for循环流程图

C 编程中`for`的循环 - 图1

步骤 1:首次初始化发生,计数器变量初始化。

步骤 2:在第二步中检查条件,其中计数器变量由给定条件测试,如果条件返回true则执行for循环体内的 C 语句,如果条件返回false,则for循环终止,控制流退出循环。

步骤 3:成功执行循环体内语句后,计数器变量会递增或递减,具体取决于操作(++--)。

for循环的示例

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int i;
  5. for (i=1; i<=3; i++)
  6. {
  7. printf("%d\n", i);
  8. }
  9. return 0;
  10. }

输出:

  1. 1
  2. 2
  3. 3

C 中的各种形式的for循环

我在以下所有例子中使用变量num作为计数器:

1)这里使用num = num + 1而不是num ++

  1. for (num=10; num<20; num=num+1)

2)初始化部分可以从循环中跳过,如下所示,计数器变量在循环之前声明。

  1. int num=10;
  2. for (;num<20;num++)

注意:即使我们可以跳过初始化部分但是分号(;)必须保留,否则你将得到编译错误。

3)与初始化一样,您也可以跳过增量部分,如下所示。在这种情况下,分号(;)必须在条件逻辑之后。在这种情况下,增量或减量部分在循环内完成。

  1. for (num=10; num<20; )
  2. {
  3. //Statements
  4. num++;
  5. }

4)这也是可能的。计数器变量在循环之前初始化并在循环内递增。

  1. int num=10;
  2. for (;num<20;)
  3. {
  4. //Statements
  5. num++;
  6. }

5)如上所述,计数器变量也可以递减。在下面的示例中,每次循环运行时变量都会递减,直到条件num > 10返回false

  1. for(num=20; num>10; num--)

C 中的嵌套for循环

循环嵌套也是可能的。让我们举个例子来理解这个:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. for (int i=0; i<2; i++)
  5. {
  6. for (int j=0; j<4; j++)
  7. {
  8. printf("%d, %d\n",i ,j);
  9. }
  10. }
  11. return 0;
  12. }

输出:

  1. 0, 0
  2. 0, 1
  3. 0, 2
  4. 0, 3
  5. 1, 0
  6. 1, 1
  7. 1, 2
  8. 1, 3

在上面的例子中,我们在另一个for循环中有一个for循环,这称为循环嵌套。我们使用嵌套for循环的示例之一是二维数组

在 C 中循环内部进行多次初始化

我们可以在for循环中进行多次初始化,如下所示。

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

上面的循环和简单的for循环有什么区别?

  1. 它正在初始化两个变量。注意:两者都用逗号(,)分隔。

  2. 它有使用 与(&&)逻辑运算符连接在一起的两个测试条件。注意:您不能使用以逗号分隔的多个测试条件,您必须使用逻辑运算符,例如&&||连接条件。

  3. 增量部分有两个变量。注意:应以逗号分隔。

具有多个测试条件的for循环的示例

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int i,j;
  5. for (i=1,j=1 ; i<3 || j<5; i++,j++)
  6. {
  7. printf("%d, %d\n",i ,j);
  8. }
  9. return 0;
  10. }