C语言算法问题,算法高手进,关于for循环的。

一:for(i=0;i<100+4;i++){语句;}二:for(i=0;i<104;i++){语句;}一、二两个循环哪个最佳?每次for循环,计算机都要去判断是否进行循... 一:for(i=0;i<100+4;i++)
{
语句;
}
二:for(i=0;i<104;i++)
{
语句;
}
一、二两个循环哪个最佳?每次for循环,计算机都要去判断是否进行循环,那么第一个的判断语句比第二个的多一步,那么如果for循环要进行很多次,那么第一个循环的速度明显要慢于第二个,是吗?那么是不是for循环中得判断条件,能确定的尽量用确定值,而不是用表达式??
展开
 我来答
ecitluo
2011-08-01 · TA获得超过763个赞
知道小有建树答主
回答量:275
采纳率:50%
帮助的人:115万
展开全部
for 循环中的判断条件,能确定的尽量用确定值,而不是用表达式,这是完全正确的,而且最好在程序中这样做,这样可以提高运行效率。

上面的两个循环语句,从写法上来说,应该用第二个,既然已经确定是 104 了,何必用 100 + 4 呢?
不过 运行速度未必会有区别, C++ 有常量表达式的概念,如果是常量表达式,在编译时 编译器就会计算常量表达式的值,并用计算后的值替换常量表达式。

所以在正常情况下,第一个循环可能在编译器生成代码时, 已经自动地 将 100 + 4 替换成 104 啦,所以运行速度并无区别,但 这个特性与编译器的优化有关,不过 现代的C++编译器都能优化这种情况。
匿名用户
2011-08-01
展开全部
显然你已经知道答案了,如果不确定的话可以用大一点的循环次数,然后前后打印时间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jarrywd
2011-08-01 · TA获得超过100个赞
知道答主
回答量:81
采纳率:0%
帮助的人:76.3万
展开全部
对于现在的PC机,这个差异倒算不了什么,不过次数多了始终还是有一定的影响,我在学校搞过单片机,那个速度和容量都跟PC机没法比,所以会对这样的影响考虑得比较多,我们的原则就是能用确定值的就坚决不用表达式,甚至尽量避免乘法除法之类的运算量大的计算。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式