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