AD
AD

关于for语句的部分解析

时间:2008-06-08 06:30:32  来源:互联网  作者:
AD
有关for语句的部分解析
1.
for语句
格式:for (表达式1;表达式2;表达式3)
语句
执行过程:

先计算表达式1的值。

再计算表达式2的值,若其值为真,则执行循环体一次;否则跳转第⑤步。

然后计算表达式3的值。

回转上面第②步。

结束循环,执行for语句下面一个语句。
说明:(1)表达式1一般为赋值表达式,用于进入循环之前给循环变量赋初值。
(2)表达式2一般为关系表达式或逻辑表达式,用于执行循环的条件判定,它与while、do-while循环中的表达式作用完全相同。
(3)表达式3一般为赋值表达式或自增 (i=i+1 可表示成i++)、自减 (i=i-1可表示成i--)表达式,用于修改循环变量的值。
(4)如果循环体部分是多个语句组成的,则必须用大括号括起来,使其成为一个复合语句。
例4.4 用for循环结构来计算1+2+3+…+10的值。
[程序] main ()
{

int i,sum=0;
for (i=1;i<=10;i++)

字串3
sum=sum+1;

printf ("1+2+3+…+10=%d\n",sum);}
程序运行结果:
1+2+3+…+10=55
可以看出,此例的结果与用while语句完全相同的。显然,用for语句简单、方便。对于以上for语句的一般形式也可以改写为while循环语句的形式:
表达式1;
while(表达式2)
{

循环语句;

表达式3;
}
例如,以下for语句程序段:
for (i=1;i<=5;i++)

{a=a*i;

printf ("%d%d\n",a,i);}
完全等价于下面的while语句程序段:
i=1;
while (i<=5)
{

a=a*i;

printf ("%d%d\n",a,i);

i++;
}
2.
for语句表达式的进一步说明
(1)
for语句的一般形式中的“表达式1”可以省略。但要注意省略表达式1时,其后的分号不能省略。此时,应在for语句之前给循环变量赋初值。例如:
i=1;
for (;i<=100;i++)

sum=sum+i;



for (i=1;i<=100;i++)
相当于:



sum=sum+i;;
i=1;
while (1) 字串8
{printf ("%d",i);

i++;}


(2)
如果省略表达式2,即表示表达式2的值始终为真,循环将无终止地进行下去。例如:
for (i=1;;i++)
相当于:

printf ("%d",i);

该循环无终止条件,将无限循环输出1、2、3、4、5……。
(3)
如果省略表达式3,也将产生一个无穷循环。因此,程序设计者应另外设法保证循环能正常结束,可以将循环变量的修改部分(即表达式3)放在循环语句中控制。例如:
for (i=1;i<=100;)


}
sum=sum+i;
i++;
}
上述for语句中没有表达式3,而是将表达式3(即i++)放在循环语句中,作用相同,都能使循环正常结束。
(4)
可以同时省略表达式1和表达式3,即省略了循环的初值和循环变量的修改部分,此时完全等价于while语句。例如:
while (i<=10)
{

printf ("%d",i);

i++;
}


for (;i<=10;)

{


printf ("%d",i);
相当于:

i++;
}
(5)
3个表达式都可省略,如:

字串2


for (; ;) 相当于:while (1)
即不设初值,不判断条件(认为表达式2为真值),循环变量不增值。无终止地执行循环体。
(6)
在for语句中,表达式1和表达式3也可以使用逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。在逗号表达式内按从左至右求解,整个表达式的值为其中最右边的表达式的值。例如:
for (i=1;i<=100; i++, sum=sum+i;)
相当于:for (i=1;i<=100;i++)

sum=sum+i;
(7)
在for语句中,表达式一般为关系表达式(如i<=10)或逻辑表达式(如x>0‖y<-4),但也可以是其他表达式(如字符表达式、数值表达式)。
(8)
for语句的循环语句可以是空语句。空语句用来实现延时,即在程序执行中等待一定的时间。需要注意的是,延时程序会因为计算机速度的不同而使执行的时间不同。如下面语句为延时程序的例子:
for (i=1;i<=1000;i++);
注意以上语句最后的逗号不能省略,它代表一个空语句。

上一篇:void及void指针深层探索   下一篇:没有了

文章评论

共有 0位网友发表了评论

loading..评论加载中....
AD
AD

24小时热门信息

    AD