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循环。for循环的主体也可能为空。这提高了某些代码的效率。

例如:

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

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

循环的另一个应用是带有空主体的延时,如下例所示:

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

更新于:2021年9月1日

2K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告