まつもと ゆきひろです
In message "[ruby-list:4053] How to 'break' inside case"
on 97/09/03, Eiji-usagi-MATSUmoto <ematsu / pfu.co.jp> writes:
|うさぎです。
|
|Eiji-usagi-MATSUmoto <ematsu / pfu.co.jp> said:
|> そのひとつめなんですが、parseArgsに関する質問です。
|
|なんか反応がないので(; ;)、次の質問にいきます。
すいません.parseargって私が作ったんでないんで,よくわかんな
いんです.作者は忙しそうだしなあ.ちょっと調べましょう.
|case文の途中で、caseのブロックから抜けでたい時ってどうしたら
|いいんでしょうか?
できません.breakはループ脱出専用です.
|どうしても抜けたい時は、どうしたらいいんでしょうか?
代案としては
* 抜けたい部分を別メソッドにしてreturn
* catch/throwをつかう
* 例外を使う
などが考えられます.
|それとちょっと関係するのですが、ユーザガイドの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が逆のような気が
|するんですけど、何か私勘違いしてますでしょうか?
いいえ,これで良いです.nextはCにおけるcontinueと一緒で,条
件の評価からやり直します(「次」のループに入るわけですね).
redoは条件評価直後の地点にジャンプして今回のループを「やり直
し」ます.
まつもと ゆきひろ /:|)