通过添加另一个变量和一个整数来创建变量

时间:2018-09-26 20:52:25

标签: ruby

我正在尝试使用Ruby创建一个简单的程序以供学习。它要求您提供电话号码。它接受该数字,将其加1,然后告诉您这个新数字是更好的数字。

puts ‘hello, what is your favorite number?
fav = gets.to_i
puts fav + 1 ‘would be a better choice!’

如果我取消“将是一个更好的选择!”或将其放在单独的行中,则效果很好。我无法弄清楚我在这方面做错了什么。

感谢您为解决此问题提供帮助。

2 个答案:

答案 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!"