上QQ阅读APP看书,第一时间看更新
7.4.3 使用for循环语句的注意事项
在使用for循环语句时,应该注意如下9点。
(1)for循环中的“表达式1(循环变量赋初值)”“表达式2(循环条件)”和“表达式3(循环变量增量)”都是可选项,并可以省略,但是不能省略分号“;”。
(2)如果省略了“表达式1(循环变量赋初值)”,则表示循环控制变量不赋初值。
(3)如果省略了“表达式2(循环条件)”,则不进行其他操作时便形成了死循环。例如下面的代码。
for(i=1; ; i++)sum=sum+i;
上述代码相当于
i=1; while(1){ sum=sum+i; i++; }
(4)如果省略了“表达式3(循环变量增量)”,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。例如下面的代码。
for(i=1; i<=10; ){ sum=sum+i; i++; }
(5)可以同时省略“表达式1(循环变量赋初值)”和“表达式3(循环变量增量)”,即只给出循环条件,但是不能省略分号。
(6)3个表达式都可以省略,例如“for(;;)语句”,此时它是一个无限循环语句,除非用break来终止,否则将一直循环下去而成为死循环。
(7)表达式1可以是设置循环变量初值的赋值表达式,也可以是其他表达式。例如下面的代码。
for(sum=0; i<=100; i++)sum=sum+i;
同样,表达式3也可以是和循环无关的任意表达式。
(8)表达式1和表达式3可以是一个简单表达式,也可以是逗号表达式。例如下面的两行代码。
for(sum=0, i=1; i<=100; i++)sum=sum+i; for(i=0, j=100; i<=100; i++, j--)k=i+j;
(9)表达式2一般是关系表达式或逻辑表达式,也可是数值表达式或字符表达式,只要其值非零,它就执行循环。例如下面的代码。
for(i=0; (c=getchar())! ='\n'; i+=c);