首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

一道笔试题,该如何处理

2012-02-02 
一道笔试题还有一个问题 一个笔试题for(int i 0 i ni++){if(isok){dosomething()}else{doothersomth

一道笔试题
还有一个问题 一个笔试题
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次。


一家只言,仅供参考。

热点排行