流れ制御 >練習問題まとめ

苦労したこの問題。

おばあちゃんに何を言っても大文字でタイプしない限り

  • は!??もっと大きな声で話しておくれ、お嬢さん

と返事をします。彼女があなたの声を聞いて

  • いやー1938年以来ないねー

と返事をします。できれば1930-1950のランダムな数字で何度か違う数を言うようにしましょう。あなたがBYEというまで会話がおばあちゃんとの会話は終了しません。

プログラムを実行するに必要な要素ごとに文を分解するといいよとご助言いただき ようやく分解コードが形になったのでそれぞれを足して上の会話文をあらわしてみましょ。

input = gets.chomp
  until input == input.upcase
  puts 'は!?? もっと大きな声で話しておくれ大嬢さん'
  input = gets.chomp
  end
  puts 'いやー' +(1930 + rand(20)).to_s + '年以来ないねー'
    
  until input ==  'BYE'
  puts 'あそぼう'
  input = gets.chomp
  end
 
puts 'さようならまたね'

雨バージョンで。

moomin:ProgrammingRuby tomomi$ ruby practice.rb
hi
は!?? もっと大きな声で話しておくれ大嬢さん
hello
は!?? もっと大きな声で話しておくれ大嬢さん
how are you?
は!?? もっと大きな声で話しておくれ大嬢さん
HELLO
いやー1943年以来ないねー
あそぼう
今日は雨
あそぼう
雨だから寝る
あそぼう
眠いの
あそぼう
BYE
さようならまたね

これでよいのかな。適切かつ簡潔に要素を分解してコードに落とすことがすごく大事なんですね。なかなかそのコツがつかめないでいるけど数を解いて慣れるしかなさそう。がむばります。
多くの指南ご助言ありがとうございますどもですー!