読者です 読者をやめる 読者になる 読者になる

メソッドgets と .chomp

Ruby
puts 'こんにちは。あなたのお名前は?'
name = gets 
puts 'あら、' + name + 'でございますか。どもども'
puts 'どぞよろしく' + name + 'さん。'
moomin:ProgrammingRuby tomomi$ ruby gets.rb
こんにちは。あなたのお名前は?
tomomii
あら、tomomii
でございますか。どもども
どぞよろしくtomomii
さん。

なるほど、コードを書いた通りEnterキーを認識して 'あら、tomomii'の後ろと'どぞよろしく tomomii' の後ろで行が変わっちゃうのですね。それを解除するのが .chompというわけ。試してみましょ。

puts 'こんにちは。あなたのお名前は?'
name = gets .chomp
puts 'あら、' + name + 'でございますか。どもども'
puts 'どぞよろしく' + name + 'さん。'
moomin:ProgrammingRuby tomomi$ ruby gets.rb
こんにちは。あなたのお名前は?
tomomii
あら、tomomiiでございますか。どもども
どぞよろしくtomomiiさん。

うまくいきました。

練習問題 1

最初に姓、次に名を尋ねた後、フルネームに対してあいさつするようなプログラムを書いてみましょう

puts 'あなたの名字を教えてくださいな'
name1 = gets .chomp
puts 'なんとびっくり!' + name1 + 'さん。変わった名字ですねえ、お名前は?'
name2 = gets. chomp
puts 'ほう、' + name2 + 'さんとおっしゃいますか。'
puts 'こんにちは、' + name1 + name2 +'さん。どうぞよろしくね。'
moomin:ProgrammingRuby tomomi$ ruby gets.rb
あなたの名字を教えてくださいな
にゃー
なんとびっくり!にゃーさん。変わった名字ですねえ、お名前は?
tomomii
ほう、tomomiiさんとおっしゃいますか。
こんにちは、にゃーtomomiiさん。どうぞよろしくね。

お、一発で出ました。しかし名字と名前の間のスペースの取り方がわからない。うーん。

練習問題 2

好きな数を入力してもらい、それに1を加えて その結果をより大きくてベターなお気に入りの数として勧めるプログラムを書きましょう(機転の利いたサジェスチョンに努めましょう)

へえ?わからない。
1を加えてってどゆこと。

puts 'あなたの好きな数字はなんですか?'
fig = gets .chomp 
puts fig + 'が好きとはこれまた素敵ですね'
puts fig + 'に'  + 1  + 'を加えてみましょう。'

moomin:ProgrammingRuby tomomi$ ruby gets.rb
あなたの好きな数字はなんですか?
100
100が好きとはこれまた素敵ですね
100に1を加えてみましょう。
gets.rb:6: undefined local variable or method `r' for main:Object (NameError)

機転の利いたサジェスチョンとかよくわかんない…プログラムする以前の問題な気がする。