刚刚开始研究泰特先生“七周七语”中的Ruby章节。
对于第1天的奖励问题,我要生成一个“随机”数字,从输入中读取用户的猜测,并将猜测与我的“随机”数字进行比较,然后提示用户继续使用{ {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"
答案 0 :(得分:4)
chomp
有两个版本。常规chomp
和爆炸chomp!
。不同之处在于:常规返回修改后的字符串(并单独留下源代码),而bang版本就地修改原始字符串。
所以,在你的代码中,你会选择回车并扔掉这项工作。要么这样做
again = again.chomp
或者
again.chomp!