1
我一直在试图制作一个图形数据结构,它可以找到凯文培根。我有一个问题,我的退货声明不起作用,我想知道这个问题可能是什么。这里是我的代码,并感谢所有帮助提前:Ruby返回语句不起作用
require_relative "Node"
$films = []
$actors = []
def find_kevin_bacon(node, start)
$actors << start.name
if start.name == "Kevin Bacon"
puts "YES!"
return $films
end
if start.name != "Kevin Bacon"
puts "NO!"
start.film_actor_hash.each do |movie, actors|
if actors.include?(node)
puts "Its Him!"
$films << movie
find_kevin_bacon(node,node)
end
end
start.film_actor_hash.each do |movie, actors|
if $films.include?(movie) == false
actors.each do |act|
if $actors.include?(act) == false
$films << movie
find_kevin_bacon(node, act)
end
end
end
end
end
$films
end
我插了几手看跌语句来看看我的输出,当我运行它,我得到以下几点:
NO!
NO!
NO!
NO!
Its Him!
YES!
NO!
NO!
NO!
NO!
NO!
Chappie
X2
Robots
Footloose
Robots
X2
Chappie
Lion
Bewitched
因此,代码表示那“凯文培根”被包含在其中一个actor数组中,但不是结束它继续继续的方法。再次感谢您的帮助!
我用了第二个选项,你建议它工作,所以谢谢你。我很好奇,所以我的理解是,如果返回结果如果结果是格式为返回“代码”,如果“条件”。那么,“条件”如何等于真,通常不需要比较if语句中的某些内容以获取布尔值true或false? – robert
该列表不是两个选项。这两部分都是必需的。 –