2

Tate 氏の「Seven Language in Seven Weeks」の Ruby の章を読み始めたところです。

1 日目のボーナス質問では、「乱数」を生成し、入力からユーザーの推測を読み取り、その推測を私の「乱数」と比較してから、ユーザーにbeginループで推測を続けるように促します。ただし、ユーザーが入力した文字列の値に関係なく、ループは終了するようです。

# file : day1_bonus.rb
# Seven Languages In Seven Weeks
#
# Guess a random number!

again = "y"

begin
  print "Enter a number between 0 and 9: "
  number = gets.to_i
  randNum = rand(10)

  if number == randNum
    puts 'You guessed correctly!'
  else
    puts 'You guessed incorrectly.'
  end

  print "Play again? (y/n): "
  again = gets
  again.chomp   # remove carriage return
end while again == "y"

出力:

Enter a number between 0 and 9: 3
You guessed incorrectly.
Play again? (y/n): y
nil
4

1 に答える 1

4

には 2 つのバージョンがありchompます。レギュラーchompとバンchomp!。違いは次のとおりです。通常は変更された文字列を返します(ソースはそのままにしておきます)が、bang バージョンは元の文字列をその場で変更します。

したがって、コードでは、キャリッジ リターンをむさぼり食って、この作業を破棄します。これを行うか

again = again.chomp

またはこれ

again.chomp!
于 2012-03-30T02:04:34.430 に答える