将值转换为Switch语句用例
Converting Values to Switch Statement Cases
对于编程类,我必须将一段值转换为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]
得到结果。
相关文章:
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- 如何将 if else 语句重写为 switch 语句
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- Switch 语句(字符串)一直选择默认值,除非其为零
- C++ switch 语句:对案例进行分组,并针对每个案例给出特定的说明
- 任意大小的 constexpr 数组是否可以用作 switch 语句中的案例?
- 为什么在 C/C++ 中交织 switch/for/if 语句是有效的?
- 默认标签显然在 switch 语句中不起作用
- C++如何在 switch 语句中放置两个参数
- 如何在 c++ 中从 switch 语句返回不同类型的变量
- switch-case语句如何在Arduino/C++中工作
- 在编译时自动生成用于稀疏数组索引的switch语句
- 代码样式:在 switch/if 语句的分支中重用控件表达式或控制变量
- C++ Switch 语句中的数学运算
- 变量不能在 lambda 中隐式捕获,并且没有使用 switch 语句指定捕获默认值
- 在任何案例之前,在 switch 语句中的使用声明是否合法?
- 有没有办法缩短长 switch() 语句?
- 使用 switch 语句将不同的函数作为类属性分配 C++
- 为什么我的 switch 语句没有响应一半的情况?
- 没有if或if相关语句(switch、while、for、?:等)的可视化c++递归