┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃.&&&& **** %%%%. 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
その他