2016-09-26 5 views
1

私はRubyを習得しようとしており、ユーザー入力を取得する簡単なプログラムを作成し、次にelsif文を使用して3つの異なる答えを与えることを義務付けられました。ここに私のコードは次のとおりです。Fixnum Rubyに文字列を強制することはできません

print "What is your birth year?" 
year = gets.chomp 
age = 2016 - year 
if age >= 40 
    puts "You're old!" 
elsif age.between?(25, 39) 
    puts "You aren't too old!" 
else 
    puts "You're just a baby!" 
end 

はしかし、私は

「文字列がFixnumかに強制することはできません」得続ける私は「年齢」のためにやっているようなものをやってのレッスンで覚えていません。私はそれを間違っている可能性がありますが、私はレッスンやオンラインでも答えを見つけることができませんでした。どんな助けでも大歓迎です!

+0

コードが正しくインデントされていれば、コーディングが楽になることがわかります。まともなテキストエディタがあれば、それは簡単になります。あなたのコード通知では、 'if age> = 40'は関連するブロックの残りの部分と共に字下げされますが、' end'の終了はそうではありません。より複雑なネスティングを持つコード、またはデバッグをより困難にするクラスまたはメソッドの定義。 –

答えて

1

getsは文字列の値を返し、Rubyの文字列と数値は全く異なるものです。他の言語の中には、PHP、Perl、JavaScriptなど必要に応じて強制するものもありますが、Rubyではそうではありません。一人で通常は十分である技術的にto_iが、

year = gets.chomp.to_i 

は、この作業を行います。

+0

ああ私の神。私は今、十分にあなたに感謝することはできません。それが私を夢中にしていた! –

+0

自動変換に慣れていた人にとっては少し難解です。 Rubyの土地では '" 5 "== 5'は' false'を返します。また、 '0'は論理的に真ですので、注意してください! – tadman

関連する問題