圧倒的備忘録

忘却は罪である。

【Ruby入門】getsメソッドのデータ型エラーを解消するには

要件

-ユーザーが入力した値の1%分のポイントを表示する。 -ユーザーが入力した値が1000円以上の場合には、1%分のポイント+50ポイントを表示する。

【失敗例】

money = gets
point = money / 100

if money >= 1000
    puts point + 50
else
    puts point
end

次のような、エラーが表示されて処理が実行されません。 test02.rb:2:in <main>': undefined method/' for "1200\n":String (NoMethodError)

これは、getsメソッドに原因があります。getsメソッドはキーボードで入力した値を取得しますが、文字列として取得します。そのため、文字列を数値として計算しようとしたため、怒られてしまうのです。そのため、ここでは数値として値を取得してくれる.to_iメソッドを使いましょう!

money = gets.to_i
point = money / 100
if money >= 1000
    puts point + 50
else
    puts point
end

これにより、エラーが改善することが可能です!