gets と gets.chomp

gets method だけでは入力したときに、 ユーザが入力終了を知らせるために使った改行文字までも取り込んでしまう。

gets method のみのとき

% ./parrot.rb                           [~/]
名前を入力すると挨拶します
名前をどうぞ: Madoka
ルビオウム: Madoka
さんオハヨウ
ルビオウム: Madoka
さんオハヨウ
ルビオウム: Madoka
さんオハヨウ

ユーザが入力するとは、どのようなことか、思い出そう。 ユーザは、名前を聞かれたので、名前プラス改行文字 を入力する。このときプログラムはこのデータを変数 name に代入してしまう。 改行文字を取り除くには、chomp method を用いる。parrot.rb を

name = gets.chomp

と変更し、実行しなおしてみよう。

% ./parrot.rb                           [~]
名前を入力すると挨拶します
名前をどうぞ: Madoka
ルビオウム: Madokaさんオハヨウ
ルビオウム: Madokaさんオハヨウ
ルビオウム: Madokaさんオハヨウ
# chomp       #  改行文字の有無を調べる
# .           #  method 1 . method 2 として、いっしょに動作を行うときに用いる

実行文にある実行する動作を method という。 method は上のように . を使って 1 行に収めてしまうことができる。

name = gets.chomp は、 ユーザの入力した文字を取ってきて、 改行文字があるかどうか調べ、あれば改行文字を切り取って、 変数 name にしまう一連の動作を意味する。 Method について

本日の講義目次 / 基礎プログラミング I / 2007 年度

Madoka Nishimura <madoka@e.koeki-u.ac.jp>