From: Eiji-usagi-MATSUmoto Date: 1997-09-03T10:04:19+09:00 Subject: [ruby-list:4053] How to 'break' inside case うさぎです。 Eiji-usagi-MATSUmoto said: > そのひとつめなんですが、parseArgsに関する質問です。 なんか反応がないので(; ;)、次の質問にいきます。 case文の途中で、caseのブロックから抜けでたい時ってどうしたら いいんでしょうか? たとえば、 def hoge(a, b) case b when 0 printf("b = 0\n") if a == 1 printf("and a = 1\n") break # <== ここで抜けたい! else printf("but a != 1\n") end print("hogehoge\n") end end とやると、hoge(0,0)はいいんですが、hoge(1,0)を実行すると、 b = 0 and a = 1 test.rb:7:in `hoge': LocalJumpError| unexpected break from test.rb:16 となって、こんなところでbreakしちゃだめとといわれます。 どうしても抜けたい時は、どうしたらいいんでしょうか? * * * それとちょっと関係するのですが、ユーザガイドのnext, redo, break の説明で、 label_next: while (condithion) { label_redo: goto label_next /* next */ goto label_break /* break */ goto label_redo /* redo */ } label_break: というのがあるんですが、これってredoとnextが逆のような気が するんですけど、何か私勘違いしてますでしょうか? では。 -- Eiji MATSUmoto PFU Limited, Ishikawa Japan. < Call me 'USAGI' please. (^^) >