【環境】
ruby 2.3.0(プログラミング学習サイトpaizaの環境)
【やりたいこと】
キーボードで入力した値(数値)からポイント(1%)を計算する。
1000円以上だと追加で10ポイント付与する。
【失敗例】
money = gets
point = money / 100
if money >= 1000
puts point + 10
else
puts point
end
800
=>Main.rb:3:in `<main>': undefined method `/' for "800":String (NoMethodError)
キーボードで800を入力するとエラーが返ってきました。
【原因】
getsメソッドはキーボードで入力した値を取得しますが、文字列で取得します。
そのため計算ができずエラーが出力されてしまいました。
という訳で数値で取得しましょう。
【成功例】
money = gets.to_i
point = money / 100
if money >= 1000
puts point + 10
else
puts point
end
800
=>8
2000
=>30
【解説】
getsメソッドで得られる入力は文字列(改行付き)
.chomp 改行を外す
例)name = gets.chomp
.to_i 数値オブジェクトに変換してくれる
例) age = gets.to_i
getsで文字列が返り → to_i で文字列を整数に変換した値が返る