Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
22
Help us understand the problem. What is going on with this article?
@aamonaamon9

【Ruby】getsの使い方

More than 3 years have passed since last update.

【環境】
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の違い-

22
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
aamonaamon9
地方への移住を目指しています

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
22
Help us understand the problem. What is going on with this article?