0

Chris Pine 著の「Learn to Program」という本を読んでいます。セクション 7.5 の "A Few Things to Try" では、難聴のおばあちゃんと会話するプログラムを作成する必要があります。あなたが彼女に叫んだとき、彼女は「NO, NOT SINCE [1930年から1950年の間]」と答えるべきです。

ヒントの中で、Pine は次のように書いています。まあ、それはできません。rand はそのようには機能しません。ですから、rand が返す数に対して何かをしなければならないと思います。」

rand に関する以前のセクションで、Pine は、上限を設定するために rand(x) として rand を使用することについて書きました。しかし、私が使用した他のリソース (それが何であったか思い出せません) から、(x..y) のような範囲を行うことについて学びました。したがって、私のコードでは、次のように記述します。

...
elsif whatusay == whatusay.upcase
   puts "NO, NOT SINCE " + rand(1930..1951).to_s + "!"

私のテストでは、これは 1930 年から 1950 年の間で乱数を生成するのにうまく機能しているようです。何かが足りない/理解できないのですか?この本が書かれてから、Ruby はこれを可能にするように更新されましたか?

4

1 に答える 1

4

Kernel#randは Ruby 1.9.3 から範囲を受け入れたので、この本はそれ以前に書かれたものだと思います。

于 2013-11-09T17:15:54.907 に答える