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++);