入出力を行なうプログラム例

読み込んだ文字列を2回出力するプログラムを動かして gets, chompメソッドの動きを観察しよう。

double.rb

#!/usr/koeki/bin/ruby
# -*- coding: utf-8 -*-

while true
  print "好きなことは(qで終了)?: "
  koto = gets
  if koto == "q\n" then
    break
  end
  printf("%sだ、", koto)
  printf("%sだ楽しいな。\n", koto.chomp)
end

以下は、プログラムを起動し「祭」と入力した例である。

./double.rb
好きなことは(qで終了)?: 
祭
だ、祭だ楽しいな。
好きなことは(qで終了)?: q

「祭 [Return]」と入力すると、getsメソッドが それを受け取り "祭\n" という文字列を作って返す。

koto = gets

の部分で、 "祭\n" という文字列が koto 変数に代入される。下から3行目の

  printf("%sだ、", koto)

によって出力されるのは、「祭」+「改行文字」であるが、次の行の

  printf("%sだ楽しいな。\n", koto.chomp)

は、文字列をchompしているので 出力される「祭」の直後の改行がなくなっていることに注意する。


本日の目次