class Player
def play_turn(warrior)
if warrior.feel.enemy?
warrior.attack!
else
if warrior.health < 20 && !taking_damage?(warrior)
warrior.rest!
else
warrior.walk!
end
end
@health = warrior.health
end
def taking_damage?(warrior)
warrior.health < @health
end
end
如果出现&#34;如果&#34;这是什么意思?在&#34;否则&#34;喜欢上面的代码?它与&#34; elsif&#34;有什么不同?如在
class Player
def play_turn(warrior)
if warrior.feel.enemy?
warrior.walk!
elsif warrior.health <= 10
else warrior.attack!
end
end
据我所知&#34; elsif&#34;用于附加条件,我很难理解&#34;如果在其他内部&#34;第一个示例代码中的模式。我将不胜感激任何帮助!
上面的第一个代码示例来自https://gist.github.com/rantingsonrails/3035155。
答案 0 :(得分:0)
如果在else内部意味着,只有当第一个if不为真时,才继续这个if。
在上述代码的情况下,只有在附近没有敌人时才会检查健康状况是否小于等等。
在else和else之间没有区别,除了elsif不需要额外的缩进,因此节省了空间。