分岐

[新着] Webテンプレートを仮オープンしました



0   名前: よしなり : 2006/03/16 12:19
switch文で各caseごとにbreakをつけて抜けますが、
breakを入れないと、他のcaseの命令まで実行してしまい
ます。しかし、これはなぜですか。ほかのcaseを実行する根拠
は何でしょうか。条件的にfalseだと思うのですが。だから、
実行はされないのではないでしょうか。教えてください。

1   名前: とく : 2006/03/16 12:19

breakがないとき
case:a
aの処理
case:b
bの処理
case:c
cの処理
とあった時ケースcの時はcの処理だけでもケースaのときはa,b,cの処理をしたいという使い方がでいるという様な事を何処か読んで「へ〜」と思った記憶があります。
ちょいうろ覚えですが。

2   名前: Pid : 2006/03/16 12:19
たとえば

switch ((new Date).getDate ()) {
case 1:
case 4:
case 12:
  funcA (); // 1, 4, 12 日の場合は funcA 実行
  break;

case 3:
case 21:
  funcB (); // 3, 21 日の場合は funcB 実行
case 9:
  funcC (); // さらに 3, 9, 21 日の場合は funcC 実行
  break;

default:
  funcD (); // それ以外の日は funcD 実行
}

一覧へ戻る