ダブルステートメントを破る方法は?
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
。ループとブロックの内側からブレークすることしかできません。
求めているのが2つのネストされたループから抜け出す方法である場合はcatch
、と組み合わせて使用できます。これらthrow
は、他の言語でのtryandcatchと同じではありません。
catch(:stop) do
while some_cond
while other_cond
throw :stop
end
end
end
もちろん、いつでもフラグなどを設定して、外側のループにもフラグを立てるように指示することができます。