我正在尝试使用Ruby创建一个简单的程序以供学习。它要求您提供电话号码。它接受该数字,将其加1,然后告诉您这个新数字是更好的数字。
puts ‘hello, what is your favorite number?
fav = gets.to_i
puts fav + 1 ‘would be a better choice!’
如果我取消“将是一个更好的选择!”或将其放在单独的行中,则效果很好。我无法弄清楚我在这方面做错了什么。
感谢您为解决此问题提供帮助。
答案 0 :(得分:1)
这是您的代码:
puts ‘hello, what is your favorite number?
fav = gets.to_i
puts fav + 1 ‘would be a better choice!’
首先要解决的是第一行中缺少结束语。接下来应该更改并导致错误的是这个
fav + 1 'would be a better chocice!'
fav
是一个整数,1
也是一个整数,但是在那之后写一个字符串会导致错误。因此,我们需要告诉Ruby,我们希望将int和字符串进行组合,并使用加号(+
)进行操作。但是,尝试将int与字符串结合使用会导致String can't be coerced into Integer
错误。因此,我们需要以某种方式将int转换为字符串。然后,我们使用#to_s
方法执行此操作,该方法将返回该整数的字符串表示形式,从而使我们可以:
puts 'hello, what is your favorite number?'
fav = gets.to_i
puts (fav + 1).to_s + ' would be a better choice!'
但是,更改最后一行以使用字符串插值:
puts "#{fav + 1} would be a better choice!"
(如克里斯在评论部分中所述)将是惯用的Ruby方法。
我还建议您查看Ruby的Wiki标记,并查看Ruby上的所有可用资源,因为它们现在可以为您提供更好的学习曲线,而不仅仅是您自己练习随机方法和东西。祝你好运!
答案 1 :(得分:-1)
这应该可以正常工作:
puts "hello, what is your favorite number?"
fav = gets.to_i
puts "#{fav + 1} would be a better choice!"