我正在尝试编写一个函数,如果输入在某个数字范围内,就返回特定的值。
通常情况下,我会写一系列的if/else if语句来完成这个任务。但是,我正在处理大量的范围,所以写出30多个if/else if语句似乎效率低下。
假设我有一个整体范围的最小和最大数字,并且我想将其分成更小的范围。对于每个范围,我想返回一些值。理想情况下,每个范围的返回值将以某个固定数字递减。
为了提供背景,我正在尝试使用类似于这样的方法来根据里程数计算一个值。例如,如果里程数在101-120英里之间,费率等于里程数的80%。随着里程数的增加,百分比会递减。而且,百分比递减的数值可以是某个固定数字(例如-0.05
)
... else if (m >= 101 && m <= 120) return 0.80 else if (m >= 121 && m <= 140) return 0.75 ...
由于每个范围的返回值存在一种模式,我认为可以以比写一堆if/else语句更好的方式来完成,但我不确定具体如何做到。有什么想法吗?
你的例子没有以15递增;所以,我假设那是一个打字错误。
我会使用一个函数来解决。 例如: