GOLEM-XIVの日記

2010-04-27

javascriptでのgoto

| 20:06

プログラミングをしていると、ある項目が、複数の条件全てにマッチするかどうか調べたいことが多々あります。(その際に、余計な処理を避けるため、1つでも条件チェックに失敗したら、後続の条件チェックは行いたくない)

こんな時には、gotoが使えると見通しがよくなったりします。ということで、javascriptでgoto使ってみようと思ったらgotoが使えない!

・・・と思ったんだけど、「FAQ形式によるJavaScriptの本質がわかる超入門 - 風と宇宙とプログラム」を参考にしてラベルとbreakを使い、同等のことができました。

こんなのを、

var allOK = false;
if(条件1){
    if(条件2){
        ...if(条件n){
               //ここまで到達したら、全ての条件を通過したことになる
               allOK = true;
        ...}
    }
}

こんな風に書けました。

var allOK = false;
Check: {
    if(条件1) break Check;
    if(条件1) break Check;
    ...
    if(条件n) break Check;
    //ここまで到達したら、全ての条件を通過したことになる
    allOK = true;
}

goto有害論

goto有害論("Go to statement considered harmful")は有名ですが、使いどころを間違えなければ見通しよくなりますよね。

ちなみに、goto派なんてのがwikipediaにありました。そんな派閥あるんだ。