如何打破双重陈述?
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)
答案 0 :(得分:7)
你不能从if
内部突破,你只能从内部循环和阻止中断。
如果您要问的是如何摆脱两个嵌套循环,可以将catch
与throw
结合使用 - 这些与其他语言中的try和catch不同。
catch(:stop) do
while some_cond
while other_cond
throw :stop
end
end
end
当然,你总是可以设置一个标志或一些这样的标志来告诉外循环它也应该破坏。