首页新闻找找看学习计划

多个if-else的范围判断,有什么好的重构方法吗?

0
悬赏园豆:5 [已解决问题] 解决于 2016-02-19 11:01

类似下面:

if(a>0&&a<12) b=1;

else if(a>=12&& a<25) b=2;

else if(a>=25 && a<37) b=3;

......

else if(a>900) b=XX;

这只是个例子,实际上没法从a取模推算出b的值。

chenhp的主页 chenhp | 初学一级 | 园豆:10
提问于:2016-02-18 16:58
< >
分享
最佳答案
0

if(a<12)return 1;

if(a<25) return 2;

if(a<37) return 3;

return xxx;

收获园豆:1
长蘑菇星人 | 小虾三级 |园豆:1820 | 2016-02-19 10:52

嗯  可以

chenhp | 园豆:10 (初学一级) | 2016-02-19 10:53
其他回答(4)
0

 如果a是整数的话直接用switch,找出规律就好

比如你这个

就switch(a/10)

收获园豆:1
吴瑞祥 | 园豆:28731 (高人七级) | 2016-02-18 17:07

我已经说了嘛,没有任何规律的。这只是个例子。。。。。。

支持(0) 反对(0) chenhp | 园豆:10 (初学一级) | 2016-02-18 17:08
0

既然没规律,那就没啥好说的了。独立写个方法来进行if-else判断吧。

收获园豆:1
幻天芒 | 园豆:36522 (高人七级) | 2016-02-18 17:08

看来也只能这样了!

支持(0) 反对(0) chenhp | 园豆:10 (初学一级) | 2016-02-18 17:09
0

可以参考《大话设计模式》第245页,职责链模式,把单个If Else分成方法,然后按顺序调用,这样利于代码维护,但会增加代码量。

收获园豆:1
happydaily | 园豆:581 (小虾三级) | 2016-02-19 08:21

哦 我看看

支持(0) 反对(0) chenhp | 园豆:10 (初学一级) | 2016-02-19 09:40
0

如果的确找不到,那就if else 指定!

收获园豆:1
贫民窟大侠 | 园豆:4270 (老鸟四级) | 2016-02-19 09:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册