2

ダブルステートメントを破る方法は?

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)
4

1 に答える 1

7

の内側からブレークすることはできませんif。ループとブロックの内側からブレークすることしかできません。

求めているのが2つのネストされたループから抜け出す方法である場合はcatch、と組み合わせて使用​​できます。これらthrowは、他の言語でのtryandcatchと同じではありません。

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

もちろん、いつでもフラグなどを設定して、外側のループにもフラグを立てるように指示することができます。

于 2012-06-13T11:33:29.667 に答える