我需要询问用户他们的出生年份,然后显示从出生年份到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
但是没有用。
答案 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等这是将字符串连接在一起的时候。可以使用的一种方法是在字符串中编写一些ruby代码-您需要一个hash标记并打开和关闭大括号以使其起作用。请参阅this link for more信息或Google“红宝石字串插补”。