读书人

一道笔试题,该如何处理

发布时间: 2012-02-02 23:57:14 作者: rapoo

一道笔试题
还有一个问题 一个笔试题
for(int i = 0; i < n;i++)
{
if(isok)
{
dosomething()
}
else
{
doothersomthing()
}
}
和下面的代码有什么区别,优缺点各是什么
if(isok)
{
for(int i = 0; i < n;i++)
dosomething();
}
else
{
for(int i = 0; i < n; i++)
doothersomething()
}
两段程序优缺点各是什么

反正我回答错了,希望赐教

[解决办法]
优点大家都说了,我就说点缺点吧。
1的可读性和可理解性比2好,这也更符合目前的编程理念,保持简洁,如非必要不进行性能优化。
[解决办法]
我说说我的理解吧

从少量的有限次循环看,
1,2几乎没有区别。

但如果执行的大量的循环 例如1000次以上。

1循环,由于每次循环都要被if中断(同时受制于if中的判断条件),积累起来,时间就长了,从而处理时间更长。



[解决办法]
代码段1,2要完成的功能不一样,1,是循环n次,在这n次循环中有 dosomething()
的可能,也有doothersomthing() 的可能。
第2段:也是循环n次,但只会要么执行dosomthing() n次,要么执行doothersomthing() n次。


一家只言,仅供参考。

读书人网 >C++ Builder

热点推荐