

我的原则很简单:不做不喜欢的事!
回复楼下的:
老弟,你可太粗心大意啦.
i=0;j=0;k=0;
while(i<10000)
{ //被我粗体的东东放这儿才等价吧?
while (j<10000)
{
k=i%(j+1);
j++;
}
i++;
}
好像不对吧!
犯低级错误不该呀.
真太感谢你了,差了好多好多,呵呵,不好意思了,
我重新编辑了下
#include <stdio.h>
#include <time.h>
#define AT
main()
{
int i,j,k=0;
long one,two;
printf("test1 begin:\n");
#ifdef AT
one=clock();
for(i=0;i<10000;i++)
for(j=0;j<10000;j++)
k=i%(j+1);
two=clock();
#endif
#undef AT
printf("test1 over!\n");
printf("The time cost is %f seconds\n",(two-one)/1000.0);
printf("test2 begin:\n");
#ifndef AT
k=0;
one=clock();
i=0;
while(i<10000)
{
j=0;
while (j<10000)
{
k=i%(j+1);
j++;
}
i++;
}
two=clock();
#endif
printf("test2 over!\n");
printf("The time cost is %f seconds",(two-one)/1000.0);
getch();
}
您再帮我看看。
[此贴子已经被作者于2006-5-5 13:18:37编辑过]
以下是引用jeely在2006-5-4 8:42:00的发言:
for 和 while循环是有区别的,前面是计数循环,后面的是条件循环.条件循环每进行一次都要判断条件是否满足,而计数循环不需要,只要不超出范围就可以进行下去.
-----------------------------------------------------------------------------------------------------------------昨既然说这不对,今天就要正面给个说法。事实上
for(表达式1;表达式2;表达式3){循环体;}
等价于
表达式1;
while(表达式2)
{循环体;表达式3;}
唯一的例外是:对for(; ;)来说,表达式2允许为空白。
此种情况下在while( )扩弧里写上1,二者就等价了。
个别人说continue和break导致for()速度劣于while(),完全错误。
因为一切都包含在上述等价变换关系中了。换句话说,continue
并不为while( )独享,for( )也可用的啦。