在条件语句

时间:2017-01-19 10:21:22

标签: android

我正在传递 3 参数并将其提供给api

参数包括: userName,creditpoints,action(+/-)。

所以我有一些规则来根据用户评分发送价值,该评级是0.0 - 5.0

规则集(信用点,行动):

  

1.0 - > 2, -

     

2.0 - > 1, -

     

3.0 - > 1,+

     

4.0 - > 2,+

     

5.0 - > 3,+

我可以使用 if和else if 执行此操作,但在每种情况下我都必须反复使用相同的代码。

最佳可能情况可以做到这一点,并且在几行中具有最小复杂度

1 个答案:

答案 0 :(得分:1)

使用最少代码执行此操作的最佳方法是在参数中找到一些算法模式。

在您的情况下,例如动作是“ - ”用于评级< 3和“+”用于评级> = 3,因此你可以像这样处理动作参数:

apiCall(userName, creditPoints, rating < 3 ? "-" : "+");

类似地,creditPoints有一种模式:对于评级&lt; 3值为3 - 评级,评级&gt; = 3评级 - 2.所以最终的api调用将是:

apiCall(
    userName, 
    rating < 3 ? 3 - rating : rating - 2,
    rating < 3 ? "-" : "+"
);