|
目次:
【第12回】JavaScript 2 (基本構文、制御構造(if, for, etc.)) 第1章
--タスク12
--第12回タスクチェッカー
※公開科目にはありません 第3章
第4章
第5章
|
現在の場所: ホームページ > [3]JavaScriptによる動的Webページ > 【第12回】JavaScript 2 (基本構文、制御構造(if, for, etc.))
> 第4章 > 条件分岐制御文2 (switch...case)
条件分岐制御文2 (switch...case)
【本節の目的】
条件分岐制御文は選択制御文とも呼ばれ、JavaScriptではその条件分岐の構文によってif...else構文とswitch...case構文があります。今節ではswitch文について説明します。 switch...case構文の基本switch...case文は下記のような書式となります。
switch (評価値) {
case 評価値1:文1;文2;...;break;
case 評価値2:文3;文4;...;break;
case 評価値3:文5;文6;...;break;
..........;
default: 文7;文8;...;
}
swicthの中の評価値(integral constant)は評価式値(真偽値)では なく数値となります。 ラベルとしてのcase文を必要な処理の分だけ記述します。 case文の横には一つだけ数値ラベルを書きます。 case文の数値ラベルと評価値がどれも一致しない場合は、default ラベル文で対応します。 このdefault文は省略できますが、同時に数値ラベルに評価値が一つも 一致しない場合には、switch文の制御文の次の文に制御が移ります。 もしcaseの数値ラベルの評価値が一致する場合は、一致した数値ラベル を持つcase文に制御が移り、break;文が出現するまで、複数の 文を実行します。そしてbreak;文が現れたら、switch文の外へ制御 が移ります。 具体的には下記プログラムで確認してください。 サンプル1(swtich1.html)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Script-Type" content="text/javascript
charset=utf-8">
<title>switch...case文の実験1</title>
</head>
<body>
<h3>switch...case文の実験1</h3>
<script type="text/javascript">
<!--
document.write('<br>');
k=2;
switch(k) {
case 1:
case 2: i=0;j=9;
document.write('k=',k,'ならi=',i,' j=',j); break;
document.write('<br>');
case 3: i=3;j=4;
document.write('k=',k,'ならi=',i,' j=',j); break;
document.write('<br>');
default: document.write('なんにもなーい(´ヘ`;)');
}
//-->
</script>
</body>
</html>
サンプル2(swtich2.html)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Script-Type" content="text/javascript
charset=utf-8">
<title>switch...case文の実験2</title>
</head>
<body>
<h3>switch...case文の実験2</h3>
<script type="text/javascript">
<!--
day=new Date();
a=day.getDay()
switch(a) {
case 0: document.write('日曜日だね ',a);break;
case 6: document.write('土曜日だね ',a);break;
default: document.write('平日だぁ(´ヘ`;) ',a);
}
//-->
</script>
</body>
</html>
突然switch caseともに出現したbreak;文ですが、これも制御文の一種で非常に強力な機能を持っています。条件構文中にこのbreak;が現れる とその時点で制御が条件構文中の外へ移ります。 また後述する繰り返し制御文等では、このbreak;文が現れた時点で 制御文を一度に脱出してしまいます。特に繰り返し制御文の中に 繰り返し制御文があり、その内側の繰り返し制御文の更に内側に break;文がある場合で、break;が実行されると、内側の繰り返し 制御文の外に制御が移ります。 |