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
該列表不是兩個選項。這兩部分都是必需的。 –