匹配对多个数字范围的响应

RMc*_*irn 0 ruby logic functional-programming

我有一个方法,将返回1到100之间的数字

取决于响应(x)是否在100-90之间我想要一个响应,89-85另一个84-72另一个......等等

我用

if x > 90
 response a
elsif x > 85
 response b
elsif etc...
Run Code Online (Sandbox Code Playgroud)

但这看起来有点乱,是否有更好的重构方法?

非常感谢.

And*_*all 6

利用Range#===并使用case声明:

case x
when 72..84
  # Do something
when 85..89
  # Do something
when 90..100
  # Do something
else
  # Do something when no matches
end
Run Code Online (Sandbox Code Playgroud)