我的理解是你可以退出程序退出。你如何从循环中返回?当我按照以下方式运行return_method
时,我想退出返回"RETURNING"
的循环。
def return_method
return "RETURNING"
end
loop do
puts "Enter:"
answer = gets.chomp
if answer == 'run'
return_method
end
break if answer == 'y'
end
break
在我的方法中不起作用。
答案 0 :(得分:1)
从嵌套方法调用中逃脱嵌套循环的典型方法是使用catch
... throw
。
RETURNING = "RETURNING"
def return_method
throw RETURNING
end
catch(RETURNING) do
loop do
puts "Enter:"
answer = gets.chomp
if answer == 'run'
return_method
end
break if answer == 'y'
end
end
答案 1 :(得分:0)
通常情况下,方法调用不会强制调用方法执行像return
那样突然的操作。这就是例外情况,如果没有被抓住它们会冒泡,但对于这种事情来说,这是非常严厉的。相反,如果你想打破循环,你的方法会返回一个真值:
def return_method
puts "RETURNING"
true
end
loop do
puts "Enter:"
answer = gets.chomp
case (answer)
when 'run'
break if return_method
when 'y'
break
end
end