0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rubyで標準入力から値を受け取る方法

0
Last updated at Posted at 2023-03-17

標準入力から一行の数値を受け取るの巻

line = gets.to_i
puts line * 2

入力する値
100
実行結果
200

標準入力から一行の文字列を受け取るの巻

line = gets
puts "Hello #{line}"
puts "Hello #{line}" * 2

入力する値
おもち
実行結果
Hello おもち
Hello おもちHello おもち

標準入力から複数行の文字列を受け取るの巻

方法1
・受け取りたい行数分getsを書く

line = gets
puts "みたらし#{line}"

line = gets
puts "あずき#{line}"

line = gets
puts "三色#{line}"

入力する値
だんご
だんご
だんご

実行結果
みたらしだんご
あずきだんご
三色だんご

疑問のコーナー
Q1.以下のように書くと三色だんご以外が”だんご”の直前で改行される理由。

chat GPTのA.
標準入力から一行ずつ読み取り、それぞれの行の末尾に "だんご" を追加して出力するものです。しかし、出力されるときに各行の末尾に改行が追加されていないため、次の行が直前の行とつながって表示されます。

これは、getsメソッドが、ユーザーが入力したテキストの末尾に自動的に改行を含んでいるためです。そのため、"#{line}だんご" を puts メソッドで出力すると、line の末尾に改行が含まれたままであり、"だんご" の前に改行が追加されないため、直前の行と一緒に表示されます。

Q2.三色だんごが”だんご”の直前で改行されない理由。
chat GPTのA.
gets メソッドがユーザーが入力したテキストの末尾に自動的に改行を含んでいるため、puts メソッドがそれを含んだままで出力してしまうためです。そのため、次の行が直前の行とつながって表示されます。

line = gets
puts "#{line}だんご"

line = gets
puts "#{line}だんご"

line = gets
puts "#{line}だんご"

入力する値
みたらし
あずき
三色

実行結果
みたらし
だんご
あずき
だんご
三色だんご

解決方法
実行結果を以下のようにしたい場合は、chompを使う。

みたらしだんご
あずきだんご
三色だんご

line = gets
puts "#{line.chomp}だんご"

line = gets
puts "#{line.chomp}だんご"

line = gets
puts "#{line.chomp}だんご"

Ruby 3.2 リファレンスマニュアル,chomp
munch
chat GPT
Rubyのchompメソッドは、文字列の末尾にある改行文字を削除するためのメソッドです。chompは「切り落とす」という意味があり、改行文字を切り落とすことからこの名前がつけられました。

Rubyでは、getsメソッドを使ってユーザーからの入力を受け取る場合、改行文字も一緒に取得されます。例えば、getsメソッドで取得した文字列をそのまま使うと、文字列の末尾に改行文字が含まれることになります。

しかし、改行文字が不要な場合には、chompメソッドを使って改行文字を取り除くことができます。これにより、文字列の処理が簡単になり、余計な文字列を扱うことがなくなります。

また、chompメソッドは、引数を指定することで、改行文字以外の文字列を削除することもできます。例えば、chomp("s")とすると、文字列の末尾にある"s"を削除することができます。

標準入力からスペース区切りの文字列を受け取るの巻

num = gets.to_i
# p num
str = gets
puts str.split(" ")

入力する値
3
mitarashi azuki sanshoku

実行結果
mitarashi
azuki
sanshoku

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?