一道笔试题
还有一个问题 一个笔试题
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次。
一家只言,仅供参考。