5.5 for 语句
while 和 do-while 语句往往用在循环次数未知的情况下。当循环次数确定的时候,可以使
用 for 语句。
5.5.1 for 语句的语法
for 循环仍然是一种当型循环,其语法如下:
for (
初始化表达式
;
条件表达式
;
增量表达式
)
{
循环体
}
其中
初始化表达式:一般为赋值表达式,为循环控制变量赋初值。
初始化表达式只被计算一次。
条件表达式:一般为关系表达式或逻辑表达式,作为控制循环
测试条件。当结果为真时,循环继续,否则,表达式循环终止。
增量表达式:一般为赋值表达式或自增、自减表达式,为循环
变量增量或减量。增/减量值一般称为“步长”。
for 语句的流程图 5-6 所示。
对例 5-1,使用 for 语句可以使程序更加简洁:
int i,sum=0;
for (i = 1; i <= 10000; ++i) sum += i;
或者:
int i, sum;
for (i = 1, sum = 0; i <= 10000; ++i) sum += i; //
初始化表达式是一
个逗号表达式
5.5.2 for 语句的变体形式
for 语句的使用非常灵活,其中的 3 个表达式根据实际情况都是可以省略的,但每一个“;”
都不能省略。省略了表达式的 for 语句有以下几种变体形式:
(1)省略初始化表达式。如果在 for 语句前面给循环控制变量赋了初始值,那么初始化表达
式可以省略。例如:
i=1;
for (;i<=10000;++i) sum += i;
(2)省略增量表达式。如果 for 语句的循环体中有改变循环控制变量的操作,那么增量表达
是也可以省略。例如:
for (i=1;i<=10000;)
{
sum +=i;
++i;
}
需要提醒读者,遗忘改变循环控制变量可能造成死循环。
(3)省略条件表达式。如果循环体中包含有测试循环是否结束的代码,那么条件表达式可以
省略。此时,测试条件为永真。例如:
for (i = 1;; ++i) //
相当于
for(i= 1; 1; ++i)
{
if (i<=10000) //
这个测试保证了循环可以在有限次数后结束
评论0