将值转换为Switch语句用例

Converting Values to Switch Statement Cases

本文关键字:语句 Switch 转换      更新时间:2023-10-16

对于编程类,我必须将一段值转换为switch语句,而不使用if/else if。以下是我需要转换为大小写的值:

0 ~ 149 .............10.00美元
150到299 ......... 15美元
300至449 .........$25.00
550至749..........$40.00
750至1199........$65.00
2000及以上.....$85.00

我很难找到一种方法来分离值,因为它们在数量上如此接近(如149到150)。

我已经使用了很多算法,比如将输入除以2000,然后将其乘以10得到一个整数,但是它们彼此太接近而无法创建一个新的案例。

首先要做的是确定粒度。看起来在您的情况下,您不处理小于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]得到结果。