首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

讨论:循环内套判断还是判断内套循环好?该如何处理

2012-02-21 
讨论:循环内套判断还是判断内套循环好?即:if(exp){for()//...DoSomethingWhenexp}else{for()//...Do

讨论:循环内套判断还是判断内套循环好?
即:
if(exp){
  for(;;;)
  //...Do   Something   When   exp
}
else{
  for(;;;)
  //...Do   Something   when   not   exp
}

还是
for(;;;){
  if(exp)
  //...Do   Something   When   exp
  else
  //...Do   Something   when   not   exp
}
哪个写法好一点?个人感觉第一种效率高一点。



[解决办法]
我也觉得第一种效率高,第二种每次循环都要判断一次if。
以前看到过一本书上讲,但是忘了是怎么说的,也忘了是哪本书。寒一个!!!
[解决办法]
应该是第一种效率高,特别循环次数多的情况下差别很明显。
[解决办法]
第一种效率高,但是可读性较差。
如果exp的表达式很简单,没有副作用,不发生变化(也就是Loop Invariant),很多情况现在的编译器可以自动将第二种情况转化为第一种。
[解决办法]
void f1(){/*...Do Something When exp*/}
void f2(){/*...Do Something When not exp*/}

void (*f)() = exp?f1:f2;
for(;;)
f();
[解决办法]
偏向于第一种!
[解决办法]
用第一种吧。
看看《编程珠玑》,会有点帮助。

热点排行