2012-02-20 19 views
0

ここで範囲を検索していますが、空白の結果が出るようです。Rubyの範囲の問題

numbers = ["03","03","06","06","06","07","09","10"] 

numbers.each do |n| 
    result = case n 
     when 1..5 then "Jan" 
     when 6..10 then "Feb" 
    end 
    puts result 
end 

助けが必要ですか? ありがとう

答えて

3

あなたが持っている範囲は整数の範囲です。これはあなたの入力を動作させるためにも、整数にする必要があります:

numbers = ["03","03","06","06","06","07","09","10"] 
numbers.each do |n| 
    result = case n.to_i 
     when 1..5 then "Jan" 
     when 6..10 then "Feb" 
    end 
    puts result 
end 

ます。また、文字列のままにし、それをこのように行うことができます:

numbers = ["03","03","06","06","06","07","09","10"] 
numbers.each do |n| 
    result = case n 
     when '01'..'05' then "Jan" 
     when '06'..'10' then "Feb" 
    end 
    puts result 
end