那个实行效率高

时间:2008-07-24 07:24:56   来源:论坛整理  作者:  编辑:chinaitzhe
第一个:
if(){
if(){
....//a="*";
}else{
....//a="*";
}
}else{
if(){
....//a="*";
}else{
....//a="*";
}
}
return a;

第二个:
if(){
if(){....//a="*";return a;
}else ....//a="*";return a;
}else if(){ ...//a="*";return a;
}else ....//a="*";return a;

return a;


那个实行效率高? 所谓的OO技术是不是第二种 执行程序后就直接返回了....
网友回复:此回复为自动发出,仅用于显示而已,并无任何其他非凡作用
楼主【xyflash】截止到2008-07-23 07:03:17的历史汇总数据(不包括此帖):
发帖的总数量:229 发帖的总分数:2845 每贴平均分数:12
回帖的总数量:297 得分贴总数量:68 回帖的得分率:22%
结贴的总数量:205 结贴的总分数:2390
无满足结贴数:74 无满足结贴分:1510
未结的帖子数:24 未结的总分数:455
结贴的百分比:89.52 % 结分的百分比:84.01 %
无满足结贴率:36.10 % 无满足结分率:63.18 %
楼主加油
网友回复:这个两个方法要看条件出现的概率了;
假如假设同一层条件出现的概率相同的情况下:
第一个:无论条件走那个分支,都需要判定 2 次;
第二个:假设最外层的 if、else if、else 条件出现几率相同;
那么假如走 if 则需要判定 2 次;
假如走 else if 则需要判定何其同层的 if 条件不满足,然后在判定自己,所以也需要 2 次;
假如走 else 则说明前两个 if、else if 条件不满足,所以才走了自己,所以说明也需要 2 次判定;

综上所述,在条件概率均等的情况下,效率是一样的;
网友回复:
引用 2 楼 nianersmall 的回复:
这个两个方法要看条件出现的概率了;
假如假设同一层条件出现的概率相同的情况下:
第一个:无论条件走那个分支,都需要判定 2 次;
第二个:假设最外层的 if、else if、else 条件出现几率相同;
那么假如走 if 则需要判定 2 次;
假如走 else if 则需要判定何其同层的 if 条件不满足,然后在判定自己,所以也需要 2 次;
假如走 else 则说明前两个 if、else if 条件不满足,所以才走了自己,所以说明也需要 2 次判定;



当然,以上解释只是理论上的,实际情况,还要看编译器是如何处理的;
网友回复:效率一样的,不过不推荐下面的那种,最好一个出口

oo是指面向对象,也就是类,和这个代码没什么关系
网友回复:这个``
一回事吧`
网友回复:感觉应尽量减少不必要的嵌套,有时效率可能低一点,但代码看上去要简单明了得多。
网友回复:各有各的特点,
要根据情况而定。

假如程序在半道就返回的概率较大,
第二个方案的效率比较高。
网友回复:同意楼上的
网友回复:这和oo似乎没什么关系吧
网友回复:写成可执行代码,循环10000次
记录时间 ,就可知道哪个好些
网友回复:哈哈,支持楼上的,自己试试就知道了。。
关键字:实行,效率,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面