表达式1可缺省,放在for语句之前,但for语句中的第一个分号不能省略。执行时,跳过“求解表达式1”这一步,其他不变。
例如:
#include<stdio.h>
void main( )
{ int i,sum=0;
i=1;
for(; i<=100; i++ )
sum+=i;
printf("i=%d,sum=%d\n",i,sum);
}
表达式3可缺省,放在循环体之 中,但for语句中的第二个分号不能省略。
例如:
#include<stdio.h>
void main( )
{ int i,sum;
i=1;sum=0;
for(; i<=100; )
{ sum+=i; i++;}
printf("i=%d,sum=%d\n",i,sum);
}
■循环体中的内容可以放在表达式3中,但要在括号的后面加一个空语句。
■表达式1和表达式3可以是一个简单的表达式,也可以是一个逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。
例如:
#include<stdio.h>
void main( )
{ int i,sum;
for (i=1,sum=0; i<=100; sum+=i,i++ )
;
printf("i=%d,sum=%d\n",i,sum);
}
例如:
for(i=1; ; i++) t=t*i;
它相当于:
i=1;
while(1)
{ t=t*i;
i++;
}
■如果表达式2省略,即不判断循环条件,循环无终止地进行下去。也就是认为表达式2 始终为真,在形式上构成死循环。
■3个表达式都可省略,例如:
for(;;) 语句 相当于 while(1) 语句。
即不设初值,不判断条件(认为表达式2为真值),循环变量不增值。循环为“死循环”。
在for语句中,表达式2一般是关系表达式或逻辑表达式,但也可以是数值或字符,只要其值为非0,就执行循环体。
例如:
for(i=1; 5; i++) t=t*i;
for( i=0; (c=getchar())!='\n'; i+=c; )
for( ; (c=getchar())!='\n'; )
printf("%c",c);
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。