ruby break双重声明

时间:2012-06-13 11:10:55

标签: ruby loops break

如何打破双重陈述?

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)

1 个答案:

答案 0 :(得分:7)

你不能从if内部突破,你只能从内部循环和阻止中断。

如果您要问的是如何摆脱两个嵌套循环,可以将catchthrow结合使用 - 这些与其他语言中的try和catch不同。

catch(:stop) do
  while some_cond
    while other_cond
      throw :stop
    end
  end
end

当然,你总是可以设置一个标志或一些这样的标志来告诉外循环它也应该破坏。