Skip to content

Instantly share code, notes, and snippets.

@yucao24hours
Last active December 20, 2015 02:09
Show Gist options
  • Select an option

  • Save yucao24hours/6054328 to your computer and use it in GitHub Desktop.

Select an option

Save yucao24hours/6054328 to your computer and use it in GitHub Desktop.
1. 耳の遠いおばあちゃんのプログラムを書いてみましょう。 おばあちゃんに何を言っても(何をタイプしても)、叫ばない限り (つまり、全部大文字でタイプしない限り)、 は?! もっと大きな声で話しておくれ、坊や! と返事をします。もし叫んだときは、彼女はあなたの言葉を聞いて (少なくとも聞いた気がして)、 いやー、1938年以来ないねー! と大声で返事をします。 プログラムにちょっと真実味 を持たせるため、 1930年から1950年のランダムな数字で毎回違う年を叫ぶようにしましょう。 2. 上で作った、「耳の遠いおばあちゃんのプログラム」を拡張しましょう。 おばあちゃんはあなたに行って欲しくないのです。 あなたがBYEと叫んでもおばあちゃんは聞こえないふりをします。 BYEを3回連続で …
puts 'Hello! May I help you?'
word = gets.chomp
while word != 'BYE'
if word.upcase == word
puts 'Well, it hasn\'t happened since ' + (1930 + rand(21)).to_s + ' !'
else
puts 'Huh? Could you speak up, please??'
end
word = gets.chomp
end
puts 'Thanks. Come back anytime.'
@kakutani
Copy link

TRUISH_YEARS = (1930..1950).to_a.freeze
puts 'Hello! May I help you?'
while words = gets.chomp
  case words
  when 'BYE'
    break
  when words.upcase
    puts "Well, it hasn't happened since #{TRUISH_YEARS.sample} !"
  else
    puts 'Huh? Could you speak up, please??'
  end
end
puts 'Thanks. Come back anytime.'
  • 「入力ある限り繰り返す」の意図ならこんかいはwhileで良さそう(条件がややこしいときはloop do...endのが良さそう)
  • 1930から1950っていうのが意図ならそう書きたい(1951とは)。で、その範囲はあらかじめ决まってる。
  • 「入力を受け付ける」と「受け付けた入力に応じて処理をする(何かputsしたり抜けたり)」という境界で分けたほうが扱いやすいとおもう

BYEは3回がんばれ 👵

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment