LoginSignup
40
22

More than 5 years have passed since last update.

【Ruby】getsの使い方

Last updated at Posted at 2016-11-07

【環境】
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 で文字列を整数に変換した値が返る

参考
IT女子のHappy × IT日記 -getsとgets.to_iの違い-

40
22
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
22