请大家分析下这道题目。

yang_road 2009-03-23 03:52:09
1)
if(condition)
{
for(int i=0;i<n;i++)
dosomething();
}
else
{
for(int i=0;i<n;i++)
doOtherthing();
}


2)
for(int i=0;i<n;i++)
{
if(condition)
dosomething();
else
doOtherthing();

}
请问两段程序的优缺点。
...全文
87 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangkunit 2009-03-24
  • 打赏
  • 举报
回复
前者条件只判断1次,效率较高,但是不够简洁
后者虽然简洁 但是条件判断较多,效率不高
yang_road 2009-03-24
  • 打赏
  • 举报
回复
大家有没有考虑过代码重复性问题?
wuyi8808 2009-03-23
  • 打赏
  • 举报
回复
如果 condition 与 i 无关,用 1,否则用 2。
bulong0721 2009-03-23
  • 打赏
  • 举报
回复
1高效,2可读性好
世外涛缘 2009-03-23
  • 打赏
  • 举报
回复
顶三楼
大apple的 2009-03-23
  • 打赏
  • 举报
回复
顶 L3
scy251147 2009-03-23
  • 打赏
  • 举报
回复
ls的应该分析得对
diffmaker 2009-03-23
  • 打赏
  • 举报
回复
这个逻辑都不一样,怎么谈优缺点呢?
第一个执行n次dosomething()或n次doOtherting()
第二个执行dosomething()和doOtherthing()的总次数为n次

如果dosomething()和doOtherthing()都不改变condition的话,前者一次判断,n次循环,后者n次循环,n次判断,肯定前者的效率更好一些。
hywyjw 2009-03-23
  • 打赏
  • 举报
回复
2 会随着 N 的值成倍增长, 效率不比 1 好
hywyjw 2009-03-23
  • 打赏
  • 举报
回复
1 执行了 1 次 IF N次调用函数操作 总执行次数为 = 1+N

2 执行了 N 次 循环下的 N 次IF操作 总执行次数吧 = 2N

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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