Ruby Case Statement不断进步

DNo*_*rup 2 ruby

我正在尝试将特殊符号({W} {B} {U}等)转换为各自的颜色,所以我写了一个案例,但我认为一个案例不是我需要的,因为它一旦找到它就会结束一场比赛.

print 'Test a Color'
color = gets.chomp

case color
when '{W}'
  puts 'White'
when '{R}'
  puts 'Red'
when '{G}'
  puts 'Green'
when '{U}'
  puts 'Blue'
when '{B}'
  puts 'Black'
end
Run Code Online (Sandbox Code Playgroud)

{B}让我变黑,{U}得到我的蓝色.{U} {B}崩溃/什么都不返回.我怎么会让它继续下去?

xda*_*azz 7

检查下面.

print "Test a Color"
color = gets.chomp

hash = {
  '{W}' => 'White',
  '{R}' => 'Red'
}

# finding by regex and replace with what you want.
puts color.gsub(/\{.+?\}/){|k| hash[k] || k }
Run Code Online (Sandbox Code Playgroud)