命令
NE3 NE4 NE6 IE3 IE4 IE5 IE6 i
 値による分岐 
switch(■){
case ▲:

 …
default
}
■:条件値
▲:ラベル値

これは、■に入る値によっていろいろな処理を実行するための命令なんだ。
条件分岐としてif文というものがあったよね。
if文では、条件として式などを利用することが出来たんだ。
今回の命令では、条件ではなく値による分岐を行うんだ。
この、値による分岐の特徴として

@たくさんの分岐を簡単に作れる。

ということがあるんだ。(本当はそんな特徴のために作られた命令ではないけれど)
厳密には、このswitch文はラベルのような働きをするんだ。
じゃあ、1つずつ命令を見てみよう。
まず全体として、

    switch(■){
        ・・・
    }

という命令なんだよね。
■の部分には好きな数字を入れることができるんだ(変数を使うことが多い。なぜかは後でわかります。)。
今は、わかりやすく考えるために■は"宛先"だと考えてみよう。
次に、このswitch文の中身は

    switch(■){
        case ▲:
        default:
    }

となっているんだよね。
まず、"case"について解説すると、"case ▲"▲には数字が入るんだ。
そして、この"case"というのはラベルの役割をしていて、例えば"case 1"とすれば「ここは1番地ですよ」という意味を表わしているんだ。
つまり、ここはわかりやすく考えるために「目的地」と考えてみてね。
そうすると、はじめに設定した▲は宛先だったよね。
そして、▲は目的地なんだ。
この、switch文というのは■で設定した目的地に飛ぶための命令なんだ。(例は後に示します)
ただし、ここで気をつけなくてはいけないのは、実はこの"case"というのはただのラベルにしかすぎず、"switch"からジャンプしてきてこの"case"に飛んだ後は通常の処理のように下に続けていってしまうんだ。
値で分岐しているのに、その後は順に処理していくと飛んだ場所以降は全てプログラムを処理してしまうよね。
そこで、必要な"case"にジャンプした後は、すぐにswitch文から抜け出さないといけないよね。
そのために全ての"case"には処理の後にswitch文から抜け出すためにbreakというものを付けておかないといけないんだ。
≫break(JavaScriptリファレンス)
次に、defaultについてなんだけれど、これは該当する目的地がなかった場合にジャンプするための場所なんだ。
このdefaultに関しては、必要のない時には書かなくてもいいからね。

じゃあ、例を見てみよう。

    switch(2){                        ←宛先は"2"
        case 1:
                        ←ラベル1
            処理;
            break;
                     ←switch文から抜け出す(これが無いと以降の処理も続けてしまう)
        case 2:
                        ←ラベル2
            処理;
            break;
                     ←switch文から抜け出す(これが無いと以降の処理も続けてしまう)
       case 3:
                         ←ラベル3
            処理;
            break;
                     ←switch文から抜け出す(これが無いと以降の処理も続けてしまう)
        default:
                        ←それ以外のとき
            処理;
            break;
                     ←switch文から抜け出す(これが無いと以降の処理も続けてしまう)
    }

SOURCE
<HTML>
<HEAD>
<TITLE>switch文</TITLE>
</HEAD>
<BODY>
</BODY>
<SCRIPT language="JavaScript">
<!--
var num=2;
//switch
switch(num){
    case 1:

        document.write("num=1 です。");
        break;
    case 2:
        document.write("num=2 です。");
        break;
    case 3:
        document.write("num=3 です。");
        break;
    default:
        document.write("num=1,2,3 ではありません。");
        break;
}
//-->
</SCRIPT>
</HTML>

 

 RESULT

 


リファレンス目次