いろいろあるぜ大域(ネスト)脱出

例外処理による大域脱出(複数のネストから脱出)が標準的な方法だと思ったら、じつはそんな面倒なことをしなくても各言語で色々と大域脱出の手法があるらしい、ということがわかったので、まとめてみる。

言語 脱出方法 説明
Java break [ラベル名]; ラベル名を設定しておくと、breakやcontinueでそこにジャンプできる
PHP break [抜けるネストの数]; for(...){for(...){for(...){ ... break 2; ...}}}とすると、2つのforループを抜けられる。breakで抜けるネスト全てに関して使える。
Ruby 例外処理 (あとで書く)
Scheme call/cc (あとで書く)

ここに挙げたのは、あくまでネストから脱出するだけなので、本当の意味での大域脱出をするには、例外処理しかないんじゃないかと思う。

間違いの指摘歓迎。