目次:
【第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;が実行されると、内側の繰り返し 制御文の外に制御が移ります。 |