(散分)一个循环用法的问题,那一个会更好呢
循环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