请简述以下两个for循环的优缺点。

helloword222 2010-05-13 09:52:08
一个招聘题,题目就是这样:请简述以下两个for循环的优缺点。
难道不分场合吗?

第一个
for(i=0;i<n;i++){
if (condition)
DoSomething();
else
DoOtherthing();
}

第二个
if(condition){
for(i=0;i<n;i++)
DoSomething();
}else{
for(i=0;i<n;i++)
DoOtherting();
}
...全文
976 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
helloword222 2010-05-14
  • 打赏
  • 举报
回复 1
[Quote=引用 3 楼 zswang 的回复:]
第一个
缺点:性能较低,每次循环都有一次条件判断;
优点:可读性高,可扩展性高。

第二个
优点:性能较高,循环内没有条件判断。
缺点:不好扩展,如果加入新的条件,改动的代码过多,体积臃肿。

对前端来说循环次数不会太多,1000次循环性能差别不会超过10毫秒,所以要选择第一种。
[/Quote]

非常感谢。

今天看到答案了。就这么两行:
第一个没有什么缺点,优点是:N次,每次都要对 condition 进行判断。
第二个没有优点,缺点是:判断一次 condition ,就要对 something 或 Otherthing 执行N次。

我不解的是,难道第二个就真的没有优点吗?性能不是挺高的吗?
myhope88 2010-05-14
  • 打赏
  • 举报
回复
不错,学习了
licip 2010-05-14
  • 打赏
  • 举报
回复
非常正确![Quote=引用 3 楼 zswang 的回复:]
第一个
缺点:性能较低,每次循环都有一次条件判断;
优点:可读性高,可扩展性高。

第二个
优点:性能较高,循环内没有条件判断。
缺点:不好扩展,如果加入新的条件,改动的代码过多,体积臃肿。

对前端来说循环次数不会太多,1000次循环性能差别不会超过10毫秒,所以要选择第一种。
[/Quote]
LonelyStark 2010-05-14
  • 打赏
  • 举报
回复
就是3楼说的了
不过在偶自己写程序过程中感觉还是第一种比较好
因为第二种虽然性能高
但是实际写起来很不方便的
small_snowflower 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zswang 的回复:]
第一个
缺点:性能较低,每次循环都有一次条件判断;
优点:可读性高,可扩展性高。

第二个
优点:性能较高,循环内没有条件判断。
缺点:不好扩展,如果加入新的条件,改动的代码过多,体积臃肿。

对前端来说循环次数不会太多,1000次循环性能差别不会超过10毫秒,所以要选择第一种。
[/Quote]
讲的好详细哦。
cs5276 2010-05-14
  • 打赏
  • 举报
回复
顶楼上的解答,非常具体受用
王集鹄 2010-05-13
  • 打赏
  • 举报
回复
第一个
缺点:性能较低,每次循环都有一次条件判断;
优点:可读性高,可扩展性高。

第二个
优点:性能较高,循环内没有条件判断。
缺点:不好扩展,如果加入新的条件,改动的代码过多,体积臃肿。

对前端来说循环次数不会太多,1000次循环性能差别不会超过10毫秒,所以要选择第一种。
xiaofan_sap 2010-05-13
  • 打赏
  • 举报
回复
看需要吧 第一个 判断次数多 如果在精确控制的话 这个比较合适,第二个值判断一次,如果仅仅需要这样做还可以 精确的控制就免谈了
wqkjj 2010-05-13
  • 打赏
  • 举报
回复
对于代码(1)简单一些,可读性好些。对于代码(2),执行效率高些,但代码的可读性差些。
代码(2)的执行效率比代码(1)高,是因为if判断只需要执行一次。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧