こんにちは、kijimaです。今回はちょっと地味&短いですが、最近コードを書いていて気がついたことをメモ。「今更かよ(笑)」って思った方、ごめんなさい。

if文で複数の条件の“いずれか”にあてはまる場合を調べたい場合、switch文を使って下のような書き方ができるんですね。恥ずかしながら、つい最近まで知りませんでした…。


確認のためのコードなのであらかじめtrue/falseの値を入れていますが、a,b,c,d,e,f,という条件があったとします。

var a:Boolean = false;
var b:Boolean = true;
var c:Boolean = false;
var d:Boolean = false;
var e:Boolean = false;
var f:Boolean = false;


ここで、a,b,c,d,e,fのいずれかの条件でtrueだったら、、という処理をif文で書こうとすると、

if(a || b || c || d || e || f) trace("処理を実行");

となりますが、同じ事をswitch文を使って書くこともできます。

switch(true){
    case a:
    case b:
    case c:
    case d:
    case e:
    case f:
        trace("処理を実行");
    break
}

switchの引数にtrueをいれて、case内で分岐させるということができるんですね。よく考えてみれば当たり前のことなんですが、盲点でした。

上の例では変数a,b,c...というように短い条件分岐なのであまり差がわかりませんが、個別の条件分岐が長くなってくると、if文1行がとてつもなく横に長くなってしまうので、そういうときに視認性をあげるために便利な小技ですね。

HTML5飯