はじめに
プログラミング言語Rubyを始めて学ぶ際、標準入力は基本の基本ですが、いざ扱うとなると意外と難しいものです。
しかし、この記事を読み進めていただければ、Rubyの標準入力をマスターするための5つのステップを学ぶことができます。
それぞれのステップは、詳細な説明と具体的なコード例を通じて、より深く理解を深めることができます。
ぜひ最後までお読みいただき、Rubyの標準入力を自在に使えるようになりましょう。
●Rubyとは
Rubyは、まつもとゆきひろ氏によって開発されたプログラミング言語で、シンプルさと明瞭さを備えています。
人間中心の設計思想に基づき、読みやすさと書きやすさに重きを置いて設計されています。
そのため、Rubyは初心者にとっても学びやすい言語とされています。
●Rubyの標準入力とは
Rubyにおける標準入力とは、主にキーボードからの入力をプログラム内で読み取るための仕組みです。
これを理解し、使いこなすことで、ユーザーからのデータ入力や、他のプログラムからのデータ受け取りなどを柔軟に対応することが可能になります。
○標準入力の基本
Rubyで標準入力を扱うには、基本的にはgets
メソッドを使用します。
このメソッドを使うと、ユーザーからの入力を一行ずつ受け取ることができます。
●Rubyで標準入力を行う方法
では、実際にRubyで標準入力をどのように行うのか、具体的な方法を見ていきましょう。
○サンプルコード1:標準入力からの読み取り
Rubyで標準入力から読み取る基本的なコードは次のようになります。
このコードでは、gets
メソッドを使ってユーザーからの入力を受け取り、それをinput
という変数に代入しています。
その後、puts
メソッドを使って、入力された内容を表示しています。
この例を実行すると、ユーザーが何か入力するまでプログラムは待機状態となり、入力があるとそれを表示します。
○サンプルコード2:数値として標準入力を読み取る
次に、入力を数値として読み取る方法を見てみましょう。
そのためには、gets
メソッドで読み取った結果を.to_i
メソッドで整数に変換します。
次のコードでは、ユーザーから入力を受け取り、その値を2倍して表示しています。
このコードでは、gets
で受け取った入力を.to_i
メソッドで整数に変換し、その結果をinput
という変数に代入しています。
その後、入力された数字の2倍の値を表示しています。
この例を実行すると、ユーザーが数値を入力すると、その数値の2倍の値が表示されます。
○サンプルコード3:標準入力からの複数行読み取り
標準入力から複数行を読み取るにはどうすれば良いのでしょうか。
その場合には、ループ処理を使ってgets
メソッドを何度も呼び出すことで対応します。
複数行の入力を受け取り、その全てを表示するコードを解説します。
このコードでは、while
ループを使ってgets
メソッドを呼び出し続け、ユーザーからの入力がある限りそれを表示しています。
このループはユーザーからの入力がなくなると終了します。
この例を実行すると、ユーザーが複数行の入力をすると、その全てが表示されます。
●Rubyの標準入力の応用例
次に、Rubyの標準入力を応用した例を見てみましょう。
ここでは、複数の数値を一度に読み取る例と、二次元配列として標準入力を読み取る例を取り上げます。
○サンプルコード4:複数の数値を一度に読み取る
入力が複数の数値で構成されている場合、それを一度に読み取る方法を見てみましょう。
下記のコードでは、スペースで区切られた複数の数値を一度に読み取り、それぞれを表示しています。
このコードでは、gets.split
でスペースで区切られた入力を分割し、その後map(&:to_i)
でそれぞれの要素を整数に変換しています。
その結果をnumbers
という変数に代入し、それぞれの数値を表示しています。
この例を実行すると、ユーザーがスペースで区切られた数値を入力すると、その全てが表示されます。
○サンプルコード5:二次元配列として標準入力を読み取る
最後に、二次元配列として標準入力を読み取る方法を見てみましょう。
下記のコードでは、行ごとにスペースで区切られた数値を読み取り、それを二次元配列として表示しています。
このコードでは、readlines.map
を使って各行を配列に変換し、さらにその各行をsplit.map(&:to_i)
でスペースで区切られた数値の配列に変換しています。
その結果をlines
という変数に代入し、それぞれの行を表示しています。
この例を実行すると、ユーザーが複数行のスペースで区切られた数値を入力すると、それを二次元配列として表示します。
●注意点と対処法
以上の例を通じて、Rubyでの標準入力の基本と応用を学びました。
しかし、標準入力を扱う際には注意が必要な点もあります。
例えば、gets
メソッドで読み取った入力には末尾に改行文字(\n
)が含まれます。
そのため、そのまま出力したり、文字列操作を行ったりする際には注意が必要です。
改行文字を取り除くには、.chomp
メソッドを使います。
また、gets
メソッドは入力待ち状態となり、ユーザーからの入力がないとプログラムが停止してしまいます。
これを避けるには、入力があるかどうかを事前にチェックする、例えばIO#eof?
メソッドなどを用いると良いでしょう。
まとめ
この記事では、Rubyの標準入力の基本から応用まで、5つのステップで解説しました。
これらの知識を持つことで、Rubyでより複雑なプログラムを書く際の幅が広がります。
最初は少し難しく感じるかもしれませんが、少しずつ慣れていきましょう。