Chinaunix首页 | 论坛 | 博客
  • 博客访问: 256140
  • 博文数量: 52
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 625
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-03 08:39
文章分类
文章存档

2011年(4)

2010年(5)

2009年(6)

2008年(37)

我的朋友

分类: C/C++

2008-04-13 09:27:50

比较下面两个FOR循环的优缺点
1.for(i=1;i{
  if(condition)
   dosomething();
  else
   dootherthing();
}
2.if(condition)
{
  for(i=1;i  dosomething();
}
else
{
  for(i=1;i  dootherthing();
}
下面是别人的大家讨论出来的答案:
 
第一种答案:
优点:条件判断出现在For里面,意味着,即使我在dosomething()或dootherthing()这2个函数中改变了condition的值,For循环也能正确执行我的意图,因为它在每次循环中都会重新检测conditon的值并针对condition的值做不同动作,所谓以不变应万变,这是难能可贵的.
缺点:如果condition一直未曾改变,我们可怜的if必须每次循环都判断一下condition的真假.牺牲了运行时效率.
后者:
优点:只进行一次判断,运行时效率高.适合那种condition的值不会改变的情况.
缺点:由于只在一开始进行一次判断,所以失去的改变condition的值的机会,也就是说,即使我在dosomething()中改变了condition的值为false,这个程序也不会改变它的判断,它依然执行着dosomething()的循环.我们不能随时更换我们需要进行的动作。这是牺牲了弹性.
 
第二种答案: 
第一个是做n次判断,
条件满足a次调用a次DoSomething();
条件满足b次调用b次DoOtherthing();
第二个是做1次判断,
满足条件就调用n次DoSomething();
否则n次DoOtherthing();
 
阅读(1299) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~