我想编写一个可以将一个单元转换为另一个单元的程序.假设我有2种方法.第一种方法可以进行度量转换,第二种方法可以进行权重转换.例如;
1. long km=metricConvLength(long mil,Enum.mil,Enum.km);//first method
2. long agirlik=metricConvWeight(long kg,Enum.mil,Enum.km);//second method
我想对这些变量使用Enum结构.我的程序可以转换这些东西和对立面;
我的问题:我不想使用if-else或switch-case结构化转换.(因为如果我使用if-else结构,我的代码看起来如此糟糕,容易和缓慢.如果我需要更多50 if-else结构使用这些结构.这是研究.)
我可以在不使用if-else或switch-case的情况下为这些转换编写算法. 我的目的是减少代码,减少工作量.关于算法的任何提示?
das*_*ght 10
您不需要if-then-else- 事实上,您的程序中不需要控制语句.您所需要的只是一个查找表 - Map将您的单位枚举double转换为转换因子,以便将度量单位乘以您获得的空间单位米的转换因子,以及单位重量的千克.相反,按该因子划分米可以得到所需的单位.
有了这张地图,您就可以为所有单位对进行转换:
Cs源单元的转换因子Cd目标单位的转换因子value * Cs / Cd结果.例如,假设您要处理米,码,英寸和英尺.你的地图看起来像这样:
现在让我们假设您要将7.5码转换为英尺:
Cs = 0.9144Cd = 0.3048Res = 7.5 * 0.9144 / 0.3048 = 22.5| 归档时间: |
|
| 查看次数: |
1485 次 |
| 最近记录: |