Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如何打破双重声明?
a = 1 b = 2 c = 3 if a == 1 if b == 2 c = 5 d = 6 break end end puts c puts d
输出
loop.rb:9: Invalid break loop.rb: compile error (SyntaxError)
你不能从内部中断if,你只能从内部循环和块中断。
if
如果您要问的是如何从两个嵌套循环中中断,您可以catch结合使用throw— 这些与其他语言中的 try 和 catch 不同。
catch
throw
catch(:stop) do while some_cond while other_cond throw :stop end end end
当然,您总是可以设置一个标志或类似的东西来告诉外部循环它也应该中断。