#4 Rubyで学ぶ標準入力の基本
Rubyにおける標準入力は、Pythonと同じくらい手軽に扱える機能が用意されています。この記事では、Rubyで利用者からの入力を受け取る基本的な方法と、実務でよく使う書き方を解説します。
gets を使う
Rubyでは、getsという機能を使って入力を受け取ります。
puts "名前を入力してください: "
name = gets
これだけで、利用者が入力した内容を受け取れます。
chompで改行を取り除く
getsで受け取った文字列には、Enterキーによる改行文字が含まれています。これをそのまま使うと、表示や比較の際に意図しない結果になることがあるため、chompという機能で取り除くのが定番の書き方です。
name = gets.chomp
puts "こんにちは、#{name}さん"
数値として受け取る
数値として使いたい場合は、to_i(整数)やto_f(小数)を使って変換します。
age = gets.chomp.to_i
to_iは、数字ではない文字列を渡してもエラーにならず、代わりに0を返す点が特徴です。厳密に「数値かどうか」を確認したい場合は、正規表現でのチェックを組み合わせるとより安全になります。
複数の値をまとめて受け取る
スペース区切りで複数の値が入力される場合は、splitで分割してから、それぞれを変換します。
line = gets.chomp # 例: "3 5"
numbers = line.split(" ").map(&:to_i)
puts numbers.sum # 8
map(&:to_i)は、配列の各要素に対してto_iを呼び出す、Rubyらしい短い書き方です。
ファイルからの入力と組み合わせる場合の注意
getsは、コマンドラインからファイルの中身を渡す(リダイレクト)場合にも使えます。ファイルの終わりまで読み込むとgetsはnilを返すため、繰り返し読み込む処理ではwhile line = getsのようにnilかどうかで終了判定するのが定番です。
while line = gets
puts line.chomp.upcase
end
Rubyならではの注意点
gets.chomp.to_iのように、複数の処理を「.」でつなげて一気に書けるのがRubyらしい特徴です。慣れないうちは何をしているのか読み取りづらいかもしれませんが、「入力を受け取り→改行を除き→数値に変換する」という順番で処理が流れていると理解すれば、読み解きやすくなります。この「メソッドチェーン」と呼ばれる書き方は、Rubyのさまざまな場面で頻繁に登場するため、早めに慣れておくとコードが読みやすくなります。
まとめ
Rubyの標準入力はgetsで受け取り、chompで改行を取り除き、必要に応じてto_i・to_fで変換するのが基本の流れです。複数値の受け取りにはsplitとmapも活用しましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
Rubyをもっと学びたい方には「プロを目指す人のためのRuby入門[改訂2版]」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿