繁体   English   中英

将值转换为 Switch 语句案例

[英]Converting Values to Switch Statement Cases

对于编程类,我必须在不使用 if/else ifs 的情况下将一系列值转换为 switch 语句。 以下是我需要转换为案例的值:

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 得到一个整数,但它们彼此太接近而无法创建新案例。

首先要做的是弄清楚你的粒度。 在您的情况下,您似乎不会处理小于 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]来获得结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM