对于编程类,我必须将一系列值转换为switch语句,而不使用if / else ifs。以下是我需要转换为案例的值:
0到149 ............. 10.00美元
150至299 ......... 15.00美元
300到449 ......... 25.00美元
550至749 .......... $ 40.00
750至1199 ........ $ 65.00
2000及以上..... $ 85.00
我很难找到分离值的方法,因为它们的数量非常接近(例如149到150)。
我已经使用了大量算法,例如将输入除以2000,然后将其乘以10得到一个整数,但它们彼此太靠近以创建一个新的情况。
答案 0 :(得分:1)
要做的第一件事是弄清楚你的粒度。看起来在你的情况下,你不会处理小于50的增量。
接下来,将每个范围转换为由数字除以增量(即50)得到的整数范围。在你的情况下,这意味着
0, 1, 2 --> 10
3, 4, 5 --> 15
6, 7, 8 --> 25
... // And so on
这映射到一个非常简单的switch
语句。
注意:这也会映射到一个值数组,如下所示:
10, 10, 10, 15, 15, 15, 25, 25, 25, ...
现在,您可以通过执行array[n/50]
来获得结果。