刚刚开始在泰特先生的“七周七大语言”中学习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
最佳答案
chomp
有两个版本。规则chomp
和bangchomp!
。区别在于:正则返回修改过的字符串(并且不返回源代码),而bang版本在原地修改原始字符串。
所以,在你的代码中,你选择了马车返回并丢弃了这项工作。要么这样做
again = again.chomp
或者这个
again.chomp!