显示用户年龄

时间:2019-03-27 16:42:58

标签: ruby

我需要询问用户他们的出生年份,然后显示从出生年份到2017年的每一年以及每年的年龄。

我从这里开始:

puts "when are you born (year) ?"
birth_year = gets.to_i
birth_year.upto(2017){ |birth_year| puts birth_year }

我错过了显示年龄的部分。我尝试过类似的东西:

puts birth_year.upto(2017) - birth_year

但是没有用。

1 个答案:

答案 0 :(得分:3)

您可以使用其他形式的代码块,例如:

puts "when are you born (year) ?"
birth_year = gets.to_i    
birth_year.upto(2017) do |iterating_year|
  puts "Year: #{iterating_year}"
  puts "Age: #{iterating_year - birth_year }"
end

或者,如果您希望所有内容都在同一行中,请尝试以下操作-但它的可读性较差:

birth_year.upto(2017) { |iterating_year|  puts "Year: #{iterating_year}"; puts "Age: #{iterating_year - birth_year }" }

命名块变量

  • 建议:不要在代码块中使用与在代码块外部相同的变量名,这只会造成混淆。在这种情况下,使用您编写的代码,您在块外定义的birth_year将超出范围,并且块参数将采用迭代年份值:2001、2002、2003等

Same and confusing - avoid

字符串插值

这是将字符串连接在一起的时候。可以使用的一种方法是在字符串中编写一些ruby代码-您需要一个hash标记并打开和关闭大括号以使其起作用。请参阅this link for more信息或Google“红宝石字串插补”。