for语句第二个表达式为空,for第三个条件为空
c语言 for循环 空表达式
可以
明白了for语句的构成和作用,就能更好的灵活运用它了。
1.for语句的一般格式
for([变量赋初值];[循环继续条件];[循环变量增值])
{
循环体语句组;}
2.for语句的执行过程
执行过程如图5-1所示。
(1)求解“变量赋初值”表达式。
(2)求解“循环继续条件”表达式。如果其值非0,执行(3);否则,转至(4)。
(3)执行循环体语句组,并求解“循环变量增值”表达式,然后转向(2)。
(4)执行for语句的下一条语句。
3.说明
(1)“变量赋初值”、“循环继续条件”和“循环变量增值”部分均可缺省,甚至全部缺省,但其间的分号不能省略。
(2)当循环体语句组仅由一条语句构成时,可以不使用复合语句形式,如上例所示。
(3)“循环变量赋初值”表达式,既可以是给循环变量赋初值的赋值表达式,也可以是与此无关的其它表达式(如逗号表达式)。
例如,for(sum=0;i=100;i++)
sum
+=
i;
for(sum=0,i=1;i=100;i++)
sum
+=
i;
(4)“循环继续条件”部分是一个逻辑量,除一般的关系(或逻辑)表达式外,也允许是数值(或字符)表达式。
C语言for(表达式1,表达式2,表达式3)语句 中表达式2为空语句则变成死循环,那么这里的空语句为真还是假
这里“表达式2为空语句则变成死循环”这样说不完整正确。
例如下面这个循环:
int i=0;
for(i=0;;i++)
{
if(i10) break;
printf("%d",i);
}
这就不是死循环,这里将for的第二个表达式的判断移至循环体内,借助break来结束循环。
这里的空语句可以理解为永真,因为没有进行任何的判断,所以可以这样理解。
这个for循环内表达式为空是什么意思?
没有退出判定条件,也没有循环执行的对象。相当于一个死循环。
大括号中需要加个分号,否则会报语法错误。
C语言for( ; ; )这个语句怎么理解?
for语句的一般形式为:
for(表达式1;表达式2;表达式3)
语句
3个表达式的主要作用是:
表达式1:设置初始条件,只执行一次。可以为零个、一个或多个变量设置初值。
表达式2:是循环条件表达式,用来判断是否继续循环。在每次执行循环体前先执行此表达式,决定是否继续执行循环。
表达式3:作为循环的调整,例如使循环变量增值,它是在执行完循环体后才进行的。
所以for语句可以这样理解
for(循环变量赋初值;循环条件;循环变量增值)
语句
举个例子来说
for(i=1;1=100;i++)
sum=sum+i;
接下来来说for(;;)这个语句,第一个分号前为空,即没有赋初始值,为了能正常执行循环,应要在for语句之前给循环变量赋初始值。第二个分号前为空,即不设置任何表达式作为循环条件,那此时循环无终止的进行下去。第二个分号后为空,即执行for语句时会一直执行下去,永无终止。其实for(;;)语句即是不设初值,不判断条件,循环变量不增值,无止尽的执行循环体语句。不过,显然这个是没有实用价值的。
while(1)与for(;;)等价。
for语句第二个表达式是i
i单独做判断表达式,即表示i为真,非零时满足条件
为零时,就不满足条件,跳出循环