for 循环迭代有哪些不同的变体?

for 语句的一般形式如下 -

for (initialization; condition; operation)
statement;

  • 初始化是一个赋值语句,用于设置循环控制变量。

  • 条件是确定循环何时退出的关系表达式。

  • 该操作定义了每次循环重复时循环变量如何变化。

  • for 循环中,条件测试在循环的顶部执行。这意味着当条件为假时,循环内的代码可能不会被执行。

首先,如下例所示 -

x = 10;
for (y=10; y != x; ++y)
printf (“ %d”, y);

变体 1

这包括逗号运算符。逗号运算符使 for 循环的变体成为可能,如下例所示 -

for(x=0, y=0; x+y < 10; ++x);

在这里,x 和 y 都控制循环。

变体2

这包括循环定义的缺失部分。for 循环的一个有趣特征是循环定义的片段不需要在那里。

例如,

for (x=0; x!=456; )
scanf ("%d", &x);

在这里,每次循环重复时,都会测试 x 以检查它是否等于 456。当输入 456 时,循环条件变为假并终止循环。

变体3

这包括无限循环。如果循环定义中的所有部分都丢失,则会创建一个无限循环。break 语句用于跳出循环,如下面的示例所示 -

for(;;){
   ch = getchar();
   if(ch == 'A')
      break;
}

变体 4

这包括无实体的循环。for 循环的主体也可能是空的。这提高了一些代码的效率。

例如,

让我们从 str 指向的流中删除前导空格 -

for ( ; *str==' '; str++) ;

循环的另一个应用是具有空体的时间延迟,如下面的示例所示 -

for (t=0; t<1000; t++);