Rubyでマスターする標準入力!初心者が5つのステップで学べる全て

Rubyの標準入力のチュートリアルとコード例Ruby
この記事は約5分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

プログラミング言語Rubyを始めて学ぶ際、標準入力は基本の基本ですが、いざ扱うとなると意外と難しいものです。

しかし、この記事を読み進めていただければ、Rubyの標準入力をマスターするための5つのステップを学ぶことができます。

それぞれのステップは、詳細な説明と具体的なコード例を通じて、より深く理解を深めることができます。

ぜひ最後までお読みいただき、Rubyの標準入力を自在に使えるようになりましょう。

●Rubyとは

Rubyは、まつもとゆきひろ氏によって開発されたプログラミング言語で、シンプルさと明瞭さを備えています。

人間中心の設計思想に基づき、読みやすさと書きやすさに重きを置いて設計されています。

そのため、Rubyは初心者にとっても学びやすい言語とされています。

●Rubyの標準入力とは

Rubyにおける標準入力とは、主にキーボードからの入力をプログラム内で読み取るための仕組みです。

これを理解し、使いこなすことで、ユーザーからのデータ入力や、他のプログラムからのデータ受け取りなどを柔軟に対応することが可能になります。

○標準入力の基本

Rubyで標準入力を扱うには、基本的にはgetsメソッドを使用します。

このメソッドを使うと、ユーザーからの入力を一行ずつ受け取ることができます。

●Rubyで標準入力を行う方法

では、実際にRubyで標準入力をどのように行うのか、具体的な方法を見ていきましょう。

○サンプルコード1:標準入力からの読み取り

Rubyで標準入力から読み取る基本的なコードは次のようになります。

input = gets
puts "入力された内容は #{input} です。"

このコードでは、getsメソッドを使ってユーザーからの入力を受け取り、それをinputという変数に代入しています。

その後、putsメソッドを使って、入力された内容を表示しています。

この例を実行すると、ユーザーが何か入力するまでプログラムは待機状態となり、入力があるとそれを表示します。

○サンプルコード2:数値として標準入力を読み取る

次に、入力を数値として読み取る方法を見てみましょう。

そのためには、getsメソッドで読み取った結果を.to_iメソッドで整数に変換します。

次のコードでは、ユーザーから入力を受け取り、その値を2倍して表示しています。

input = gets.to_i
puts "入力された数字の2倍は #{input * 2} です。"

このコードでは、getsで受け取った入力を.to_iメソッドで整数に変換し、その結果をinputという変数に代入しています。

その後、入力された数字の2倍の値を表示しています。

この例を実行すると、ユーザーが数値を入力すると、その数値の2倍の値が表示されます。

○サンプルコード3:標準入力からの複数行読み取り

標準入力から複数行を読み取るにはどうすれば良いのでしょうか。

その場合には、ループ処理を使ってgetsメソッドを何度も呼び出すことで対応します。

複数行の入力を受け取り、その全てを表示するコードを解説します。

while line = gets
  puts "入力された行: #{line}"
end

このコードでは、whileループを使ってgetsメソッドを呼び出し続け、ユーザーからの入力がある限りそれを表示しています。

このループはユーザーからの入力がなくなると終了します。

この例を実行すると、ユーザーが複数行の入力をすると、その全てが表示されます。

●Rubyの標準入力の応用例

次に、Rubyの標準入力を応用した例を見てみましょう。

ここでは、複数の数値を一度に読み取る例と、二次元配列として標準入力を読み取る例を取り上げます。

○サンプルコード4:複数の数値を一度に読み取る

入力が複数の数値で構成されている場合、それを一度に読み取る方法を見てみましょう。

下記のコードでは、スペースで区切られた複数の数値を一度に読み取り、それぞれを表示しています。

numbers = gets.split.map(&:to_i)
numbers.each do |num|
  puts "入力された数値: #{num}"
end

このコードでは、gets.splitでスペースで区切られた入力を分割し、その後map(&:to_i)でそれぞれの要素を整数に変換しています。

その結果をnumbersという変数に代入し、それぞれの数値を表示しています。

この例を実行すると、ユーザーがスペースで区切られた数値を入力すると、その全てが表示されます。

○サンプルコード5:二次元配列として標準入力を読み取る

最後に、二次元配列として標準入力を読み取る方法を見てみましょう。

下記のコードでは、行ごとにスペースで区切られた数値を読み取り、それを二次元配列として表示しています。

lines = readlines.map { |line| line.split.map(&:to_i) }
lines.each do |line|
  p line
end

このコードでは、readlines.mapを使って各行を配列に変換し、さらにその各行をsplit.map(&:to_i)でスペースで区切られた数値の配列に変換しています。

その結果をlinesという変数に代入し、それぞれの行を表示しています。

この例を実行すると、ユーザーが複数行のスペースで区切られた数値を入力すると、それを二次元配列として表示します。

●注意点と対処法

以上の例を通じて、Rubyでの標準入力の基本と応用を学びました。

しかし、標準入力を扱う際には注意が必要な点もあります。

例えば、getsメソッドで読み取った入力には末尾に改行文字(\n)が含まれます。

そのため、そのまま出力したり、文字列操作を行ったりする際には注意が必要です。

改行文字を取り除くには、.chompメソッドを使います。

また、getsメソッドは入力待ち状態となり、ユーザーからの入力がないとプログラムが停止してしまいます。

これを避けるには、入力があるかどうかを事前にチェックする、例えばIO#eof?メソッドなどを用いると良いでしょう。

まとめ

この記事では、Rubyの標準入力の基本から応用まで、5つのステップで解説しました。

これらの知識を持つことで、Rubyでより複雑なプログラムを書く際の幅が広がります。

最初は少し難しく感じるかもしれませんが、少しずつ慣れていきましょう。