for (<初始化>;<条件表达式>;<增量>)
{
循环体语句;
}
for(i=0;i<=n-1;i++)
{
/*处理代码*/
}
在上面的代码中,i 值属于闭区间写法。
for(i=0;i<n;i++)
{
/*处理代码*/
}
在上面的代码中,i 值属于半开半闭区间写法,即“0=<i<n”,起点到终点的间隔为 n,循环次数为 n。
for (i = 0;i < n;i++)
{
tmp += i;
sum = tmp;
}
很显然,在上面的代码中每执行一次 for 循环,就要执行一次“sum=tmp”语句来重新为变量 sum 进行赋值,这样的写法很浪费资源。因此,我们完全可以将“sum=tmp”语句放在 for 语句之后,如下面的示例代码所示:
for (i = 0;i < n;i++)
{
tmp += i;
}
sum = tmp;
这样,“sum=tmp”语句只执行一次,不仅可以提高程序执行效率,而且程序也具有更高的可读性。
for(i=0;i<10;i++)
{
i=10;
}
在上面的代码中,在循环体内对循环变量i进行赋值之后,for 循环中止执行,从而使程序执行违背我们的原意,更严重的情况会给程序带来灾难性的后果。
for (i = 0;i < n;i++)
{
if (condition)
{
DoSomething();
}
else
{
DoOtherthing();
}
}
在上面的代码中,每执行一次 for 循环,都要执行一次 if 语句判断。当 for 循环的次数很大时,执行多余的判断不仅会消耗系统的资源,而且会打断循环“流水线”作业,使得编译器不能对循环进行优化处理,降低程序的执行效率。因此,我们可以通过将逻辑判断语句移到循环语句的外层的方法来减少判断的次数,如下面的代码所示:
if (condition)
{
for (i = 0;i < n;i++)
{
DoSomething();
}
}
else
{
for (i = 0;i < n;i++)
{
DoOtherthing();
}
}
虽然上面的代码没有前面的看起来简洁,但却使程序执行逻辑判断语句减少 n-1 次,在 for 循环次数很大时,这种优化显然是值得的。
for (i=0;i<100;i++)
{
for (j=0;j<5;j++)
{
/*处理代码*/
}
}
为了提高上面代码的执行效率,我们可以依照这条建议将上面的代码修改为如下形式:
for (j=0;j<5;j++)
{
for (i=0;i<100;i++)
{
/*处理代码*/
}
}
这样,既不会失去程序原有的可读性,同时也提高了程序的执行效率。
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有