【发布时间】:2015-09-20 03:44:08
【问题描述】:
我不知道为什么它是一个无限循环。我知道当前是 size=1 并且我知道无限循环在 .each 中。
while current!= nil do
distance+=1
discovered[current] = true
print move[current].size
move[current].each{ |coord|
if discovered[coord] == nil then
if paths[distance] == nil then
paths[distance] = Array.new
end
paths[distance].push(coord)
to_visit.push(coord)
end
}
current = to_visit.delete_at(0)
end
【问题讨论】:
-
首先将“while current!= nil do”更改为“while current do”,然后将“discovered[coord] == nil”更改为“discovered[coord].nil?”。 TBH 这段代码看起来相当程序化,而不是面向对象的。
标签: ruby infinite-loop