libro
www.tuyano.com
初心者のためのJavaScriptプログラミング入門

制御構文 (2/6)

作成:2010-03-31 20:29
更新:2010-05-11 16:58

■値に応じてジャンプする「switch」

ifは、二者択一でしたが、それ以上に細かな分岐が必要となったときに使われるのが「switch」です。これは、条件として指定した値をチェックし、その値に対応する場所にジャンプする働きを持ちます。(下のリスト部分の基本形を参照)

switchは、その後の()内にある変数や式などの値をチェックし、その値のcase文にジャンプし、そこにある処理を実行します。caseは、「case 値:」というように書かれており、この値が一致するところにジャンプするわけです。

ただし! 注意したいのは、「そこから抜ける機能はない」という点です。つまり、ジャンプして対応するcaseに移動しますが、そこにある処理を実行し終わっても、自動的に構文を抜けたりはしないのです。そこで、それぞれのcaseの後に用意するスクリプトでは、最後に「break」というものを用意するのが一般的です。このbreakは、現在の構文から抜け出る働きをします。

もし、対応するcaseがなかった場合には、「default:」というラベルにジャンプします。これはオプションなので、なくても構いません。もしなかった場合には、対応するcaseがないとそのまま構文を抜けて次へ進みます。

○利用例○

簡単な利用例を下のリストにあげておきましょう。これは、変数Aに、今何時かを示す0~23の数字を入れると、その値に応じて挨拶のメッセージが表示される、というものです。「var A = 13;」の部分の値を適当に変更して動作を確かめてみてください。

ここでは、Aを6で割った値を使ってcaseにジャンプしています。といっても、割り算をする/演算子は、小数点以下まで細かく割ってしまいますので、整数部分の値だけを取り出せません。そこで、「Aを6で割った余りをAから引いてから6で割る」というように計算をしています。あらかじめあまりの数字を引いてから割り算すれば、必ず整数の値が得られますからね。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※switchの基本形
switch ( 値 ){
case 値1:
    ……実行する処理……
    break;
case 値2:
    ……実行する処理……
    break;

……必要に応じてcaseを用意……

default:
    ……どれにも対応しない場合の処理……
}


※サンプルプログラム

<html>
	<head>
		<script type="text/javascript">
		<!--
		var A = 13;
		var n = (A  - (A % 6)) / 6;
		switch(n){
		case 0:
			alert('おやすみなさい……。夜中です。');
			break;
		case 1:
			alert('おはよう。朝です。');
			break;
		case 2:
			alert('こんにちは。昼です。');
			break;
		case 3:
			alert('こんばんは。夜です。');
			break;
		default:
			alert('ん? なんか変な時間ですよ?');
		}
		//-->
		</script>
	</head>
	<body>
		<H1>TEST.</H1>
	</body>
</html>

※関連コンテンツ

「初心者のためのJavaScriptプログラミング入門」に戻る