(散分)一个循环用法的问题,那一个会更好呢
循环1:
for (i=0;i<n;i++)
{
if(condition)
DoSomething();
else
DoOtherthing();
}
循环2:
if(condition)
{
for (i=0;i<n;i++)
DoSomething()
}
else
{
for (i=0;i<n;i++)
DoOtherthing();
}
问题1:循环1的优点和缺点。
问题2:循环2的优点和缺点。..
------解决方案--------------------如果condition是一个固定的条件,两者的效果是一样的,没有任何区别,所循环的次数都是n,但是我们普遍的想法是当if的条件condition与i无关,则将条件放在循环的外面,否则放在里面。
------解决方案--------------------个人认为2比较好
1走了n遍循环,n遍判断
2走了n遍循环,1遍判断
2的效率比较高一点点
------解决方案--------------------后者只作了一次判断,前者作了N次判断
所以后者的效率要好一点(节省了n-1次判断)
------解决方案--------------------如楼上各位所说,后者节省了n-1次判断 效率更好点
------解决方案--------------------2好
------解决方案--------------------2nd
------解决方案--------------------经典的先循环,还是先判断的问题。
------解决方案--------------------2 hao!
------解决方案--------------------1是写法上比较简洁一些
2效率会高一些吧
------解决方案--------------------支持2
------解决方案--------------------两个用法有区别啊,不好比较。
------解决方案--------------------循环的效率取决取决于你实际的应用。
------解决方案--------------------當然優缺點要看你程序中的需要。
這樣舉個例子理解一下吧:現在有10個地方你可以去做不同的事情,第一種方法是你一個一個地方去,然后做你該做的不同的事情;第二種方法是你把事情分好類該區什么地方做,然后去做。僅僅考慮到事情的步驟的話,應該差不多!!你說哪個好就哪個好嘍~~
------解决方案--------------------郁闷看了 半天 不都一样吗?
真奇怪
------解决方案--------------------个人认为F2的优点比较大。
f1是先循环,后作判断。判断时,循环被打断。所以效率会较f2要低。
f2是先判断,后循环。。效率比f1高。
------解决方案--------------------pt1314917 背着灵魂漫步
个人认为F2的优点比较大。
f1是先循环,后作判断。判断时,循环被打断。所以效率会较f2要低。
f2是先判断,后循环。。效率比f1高。
==============================
循环被打断 虾米意思啊?
------解决方案--------------------如果樓主想觀察這兩者效率如何,可以造一些數據來比較其性能,實踐是檢驗真理的最好方法.
試試吧.
------解决方案--------------------自己权衡吧...
汇编效率是非常高滴, 非常难写...
反正为了方便通常牺牲一点效率, 从而提交易用性
------解决方案--------------------2 的话先判断后循环.虽然表面上是2繁冗.其实2的效率高.并且从其他方面考虑2的功能更好些...
如果DOSOMETHING会改变这个CONDITION的话...
所以还是要看情况的..不过2就比1少了N-1 次判断.但是比1多了遍循环.在实际中没什么速度上的区别...论简洁的话当然是1了,可是2更适合实用.
所以觉得2会好一点
------解决方案--------------------支持楼上的说法!
------解决方案--------------------路过,2