switch文で多岐にわたる条件分岐を行う。

HOME
更新日:2010.01.17
HOME > JavaScript入門 > switch文

switch文

今まで勉強してきた条件分岐のif文は、2通りにしか分岐できませんでした。 即ち「条件に合っている」「条件に合っていない」の2種類です。 これ以上分岐させるには、if文を何重にも重ねて書く必要があります。

ここで解説するswich文は、一回で何通りにも分岐させることができる条件分岐命令です。 ではswitch文を使って、「本日の曜日」を表示する方法について学んでみることにしましょう。

switch文のサンプルスクリプト

HTMLのbody内に、以下のように記入してみて下さい。

<script type="text/javascript">
<!--

//曜日取得
var TODAY = new Date();
var WEEK  = TODAY.getDay();


//条件分岐
switch(WEEK){
  case 0: document.write("今日は日曜日です!"); break;
  case 1: document.write("今日は月曜日です!"); break;
  case 2: document.write("今日は火曜日です!"); break;
  case 3: document.write("今日は水曜日です!"); break;
  case 4: document.write("今日は木曜日です!"); break;
  case 5: document.write("今日は金曜日です!"); break;
  default : document.write("今日は土曜日です!");break;
}

// -->
</script>

サンプル(別窓)

上記のサンプルを見てみると、本日の曜日が表示されると思います。 曜日取得の部分は別のところで詳しく説明しますが、 変数TODAYに今日の日付データ一式を格納し、 変数WEEKにTODAYの中の「曜日」にあたるデータを代入しています。

曜日に該当するデータは数字で表されます。日曜日が0で月曜が1,…,土曜日が6となります。 この数字を調べて条件分岐させると、本日の曜日を表示させることができるわけです。


switch文の説明

ではswitch文を見てみましょう。switchの後に括弧があって、 そこに条件となる変数等を指定します。 上の場合は、WEEKに入っている数字が分岐対象となります。 switchによる条件分岐群一まとまりは、中括弧で囲みます。

次に、各条件はcaseという文字の後ろに指定します。 上記の場合は、6つの条件に分けています。 caseの後に空白を挟み、WEEKの値を記入します。 そして半角コロン「:」を記入し、その後に条件に合った場合の処理を記入します。

case内の条件の最後にbreakというのがあります。 これは、switch文を抜け出しなさいという命令文です。 breakは必ず記入しなければなりません。 例えば上記の式でWEEKの値が日曜日(0)だとします。 まずcase 0:内の処理を実行します。ここでbreakが無いと、後のcase 1,2,3…と全ての条件の処理も実行してしまいます。 そうならないよう、breakで抜け出すようにします。

最後の行に、defaultというのがあります。 これは、その他の条件という意味です。 case文でWEEK値が0~5まで分岐していますが、 それ以外の数字の場合はdefault内の処理を実行することになります。 土曜日はWEEKの値が6になるので、defaultの処理が実行されるわけです。

上記ではcase文(default文)を1行で書いていますが、 別に複数行に分けて書いても構いません。 最後にbreakを入れるのを忘れないようにしてください。


以上で条件分岐文は終わりです。 次から繰り返し文を説明しますが、 その前に配列変数について述べます。 配列と繰り返し文は相性が良く、一緒に用いることもよくあります。



ページトップへ

前へ  INDEXへ  次へ