class OrangeTree
attr_accessor :one_year_passes, :age, :orange_count, :growth, :length
def initialize
@length = 0
#@one_year_passes = one_year_passes
@age = 0
@orange_count = 0
@growth = growth
end
def height
if self.age <= 0
self.length = 0
growth
else
growth
end
end
def growth
self.length += 12
years
end
def years
if self.length >= 12
self.age = self.length / 12
#num_oranges
else
self.age = 0
height
end
end
我不知道我的问题是否有道理,但我正在制作一个增长的橙树类,它的成长会影响它的年龄,这最终会影响数字它有橙子。无论如何,我面临的问题是,当我在一个实例上调用高度方法时,它最终会通过增长方法,这会使它增长12个单位/英寸,但一旦进入年份方法和条件语句尝试长度从12到24没有我做任何事情。如果我在之前调用self.length,则会打印出条件12,但是如果我在打印条件24之后调用,这最终意味着self.age = 2而不是1.是否有人知道为什么会发生这种情况?
答案 0 :(得分:1)
我想您忘了在初始化方法中将@growth
设置为0
。目前,您在初始化期间调用方法growth
一次,然后在实例上第二次调用height
,从而接收age == 2
。