我无法理解断点在此循环中的位置。为什么代码不能继续运行?
def nearest_larger(arr, idx)
diff = 1
loop do
left = idx - diff
right = idx + diff
if (left >= 0) && (arr[left] > arr[idx])
return left
elsif (right < arr.length) && (arr[right] > arr[idx])
return right
elsif (left < 0) && (right >= arr.length)
return nil
end
diff += 1
end
end
答案 0 :(得分:7)
因为有return
个陈述。
据推测,在某些时候,其中一个条件得到满足并且函数退出。
答案 1 :(得分:2)
return
语句会立即停止一个函数,并返回提供的值。
答案 2 :(得分:2)
return
关键字一旦确定就会停止运行块