┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃.&&&& **** %%%%.  JavaScript&Javaで目指そう!基本情報技術者試験  ┃ ┃&&&&&&******%%%%%%  執筆&編集 斎藤末広 suehiro@he.mirai.ne.jp  ┃ ┃'&┃&''*┃*''%┃%'  発行    江口昌宏 ***  ┃ ┗━┻━━┻━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 広告募集:http://www2.odn.ne.jp/~egu33/jmaga/java-maga.html ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  第9号 2001/11/xx  選択文 if 文と switch 文 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  プログラムを作成する上での注意事項:  Windows とIE を前提としています。  拡張子を表示するに設定してください。 ------------------------------------------------------------------------ ▼ 制御3構造2種類の選択文  プログラムの命令は,順々に次から次へと実行されていきます。そのとき, 単純に次から次と実行していくのを,連続,ある部分を繰り返して実行すること を,反復,そこをやるかやらないか,条件にしたがって実行することを,選択と いいます。この3つ,連続,反復,選択を合わせて,制御3構造(*)という ことにします。  この号では,選択を扱います。 補足  「制御3構造」は私が名付けた用語 ------------------------------------------------------------------------ ▼ 選択文は二種類  多くの言語では,if と switch の二種類があります。switch の方は,Visual Basic では,select という用語を利用しています。同じものです。  If 文は,条件が成立したときに,○○を実行する,成立しないときは,やらず 飛ばす,あるいは,○○のかわりに△△を実行するというものです。  switch 文の方は,細かく場合に分けて,それそれの場合に違ったことを実行 するときに利用します。  では,Java でのプログラムを先にみて,JavaScript ではどうかを見てみま しょう。 ------------------------------------------------------------------------ ▼ If 文  さいころの目が偶数か奇数かの判断して,表示するプログラムは, public class xSaikoro { // サンプルコード j09-01 public static void main(String [] xargs){ int xsai; xsai = 3; // サイコロの目が3であった場合 if (xsai % 2 == 0){ System.out.println("サイコロは偶数です。"); }else{ System.out.println("サイコロは奇数です。"); } } }  このプログラムは,if 文の中に else 節がある,という言い方をします。  このプログラムは,else 節を使用せずに,2つの if 文を利用して public class xSaikoro { // サンプルコード j09-02 public static void main(String [] xargs){ int xsai; xsai = 3; // サイコロの目が3であった場合 if (xsai % 2 == 0){ System.out.println("サイコロは偶数です。"); } if (xsai % 2 == 1){ System.out.println("サイコロは奇数です。"); } } }  としても同じです。一つの事柄をひとかたまりで書く,できれば高速に行う という原則から行けば,else 節を利用した方がいいです。  判断して実行する文が,1行の場合は,{}を省略できますが,無理して付ける 必要はないですが,なにも考えずに付けておいた方がいいでしょう。これは, 保守時に余分な作業が発生させないという観点からです。  JavaScript の場合も, j09-03.htm if サンプルコード j09-03  Java と JavaScript は,if 文は同等ですね。 ------------------------------------------------------------------------ ▼ swich文  サイコロの目が1から6までありますので,これを switch 文を利用してみま す。 public class xSaikoro { // サンプルコード j09-04 public static void main(String [] xargs){ int xsai; xsai = 3; // サイコロの目が3であったとします。 switch (xsai) { case 1: System.out.println("サイコロは1です。"); break; case 2: System.out.println("サイコロは2です。"); break; case 3: System.out.println("サイコロは3です。"); break; case 4: System.out.println("サイコロは4です。"); break; case 5: System.out.println("サイコロは5です。"); break; case 6: System.out.println("サイコロは6です。"); break; default: System.out.println("サイコロの目ではありません。"); break; } } }  case: から,次のcase:の前までは,case節と呼びます。defaultの部分は, default節ですね。  これを JavaScriptで書き直すと switch 文 サンプルコード j09-05  JavaScriptも同等です。しかし,JavaScript は,変数の型が厳格でないため, switch 文で判断されるもとの変数,この場合は,xaai は,文字列でもかまいま ん。Java の場合は,判断のもとになる変数は,整数型のみです。  なお,Java,JavaScript とも,default節は,省略可能です。 ------------------------------------------------------------------------ ▼ 多重if文,階段(階段if文は私の造語)  遊園地などの入場料で, 7 才未満は, 無料, 7 才から 14 才未満は,500 円 14 才から 19 才未満は,1000 円 19 才以上は, 1500 円 などを 通常の if 文で書くと if (age < 7) { document.write("入場料は,無料です。"); } if (7<=age) && (age<14){ document.write("入場料は,500 円です。"); } if (14<=age) && (age<19){ document.write("入場料は,1000 円です。"); } if (19<=age) { document.write("入場料は,1500 円です。"); } のようになります。 これを,多重 if 文(階段 if 文)を利用し,完全な HTML プログラムにすると 多重 if 文,階段 if 文 サンプルコード j09-06  のように書けます。else if 部分は,else-if節といいます。  このような 階段if文 を利用すると,区切りの年が変更した場合のミスも 減るし,また,動作自体も高速であると予想されます。  「一つの事柄はひとかたまりで書く」で階段 if 文が使用できるときは,使用 されることをお勧めします。 ------------------------------------------------------------------------ ▼ break 無しの switch文  上の例をから,break を省略して, xsai = 3; switch (xsai) { case 1: document.write("サイコロは1です。"); case 2: document.write("サイコロは2です。"); case 3: document.write("サイコロは3です。"); case 4: document.write("サイコロは4です。"); case 5: document.write("サイコロは5です。"); case 6: document.write("サイコロは6です。"); default: document.write("サイコロは目ではありません。"); }  のように書いた場合,実行結果は,  「サイコロは3です。サイコロは4です。サイコロは5です。サイコロは6です。 サイコロは目ではありません。」と表示されます。  breakを省略した場合,case 3 の場合を実行した後,case 4:等 case は,意 味がなくなり,すべて実行してしまいます。  break があると,その時点では,switch の外(下)に出ます。break がないと 上のように副作用が発生します。その副作用を利用してのプログラムも可能です が,お勧めしません。なお,breakは,これだけで,文という単位です。break文 といいます。 ------------------------------------------------------------------------ ▼ Java と JavaScript の判断文は同じ  この号では,Java と JavaScript との判断文を見てきました。文法面からは 違いをないといっていいでしょう。ともに,C 言語からのものです。 ------------------------------------------------------------------------ ▼ 次号の予定  次の号は「型と変数」の勉強をしましょう。  感想は,斎藤まで,suehiro@he.mirai.ne.jp  広告等のお問い合わせ:*** ------------------------------------------------------------------------ 著作権について  このメールマガジンで公開しているプログラムソースは,著作権を当方スタッ フが所有しますが,商用を含めて,再利用,改変,発表を制限しません。  今回のプログラムリストは,情報処理技術者試験の問題文から利用しています。 利用にあたっては,ご自分の判断でご利用ください。当方が著作権を所有してい るわけではありません。  本文に関しては,斎藤末広が著作権を所有します。再利用に関しては,承諾を 必要とします。 広告募集 http://www2.odn.ne.jp/~egu33/jmaga/java-maga.html ------------------------------------------------------------------------ ▼アンケート(以下を返信してください)  この号のJマガは役立ったあるいは勉強になりましたか? 該当するものだけ残してください。 5: 大いに,YES 4: YES 3: 普通 2: NO 1: 大いに,NO その他