switch(true)という書き方ができることに今更ながら気がつきました。
こんにちは、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行がとてつもなく横に長くなってしまうので、そういうときに視認性をあげるために便利な小技ですね。