2017年11月09日

師匠のJava道場~第3回・条件判断について学ぶのじゃ!

弟子D:うむ!弟子Dだ!今月は俺が、この講座を……ぐはぁっ!!
(師匠に蹴りを受けて吹き飛ばされる)

師匠T:たわけが。お主が講座の担当など、2345年早いわ。
さて、今月は、条件判断について教えていく。準備は良いか?

弟子D:はい、師匠!

師匠T:うむ、その意気やよし。では行くとするぞ!

▽生か死か!?のif文じゃ▽

師匠T:まずは、条件判断の中でも、基本的なif文について説明していく。これはこのように書くぞ。

----------
if 式 {

}
----------

弟子D:あの、師匠。この式には何を書けば?

師匠T:うむ。a>5やb==5と言った条件式はもちろん、答えがtrueかfalseの、いわばboolean型の値が返ってくるものであれば、特に制限はない。条件式も、返ってくる答えは、trueかfalseじゃからな。(試しに、VBなどで、条件式の答えを表示させてみよ)
なので、こう書いても問題はないのじゃ。

----------
boolean sisyo;

sisyo=false;

if sisyo {

}
----------

師匠T:一般的にif文というと、条件式とセットにして使うものと思われているが、条件式以外の式も書けるというのは、覚えておくと便利なこともあろう。

弟子D:はい、師匠!

師匠T:さて。式の内容がtrueだった場合、波かっこ({ })でくくられた部分の処理が実行されるのじゃ。

弟子D:ふむふむ。それでは、falseだったとき、違う処理をさせたい場合はどうすれば。

師匠T:そのときの方法もちゃんとあるぞ。elseを使うのじゃ。elseを使う場合は、このように書く。

----------
if 式 {
 trueのときにさせる処理
} else {
 falseのときにさせる処理
}
----------

弟子D:falseのときは、elseの後の波かっこでくくられた部分が実行されるんですね。

師匠T:うむ、その通りじゃ。さて、次は条件式について教えるぞ。

▽条件式▽

師匠T:さて、条件式とは数値とある数値を比較して、その結果を返す式のことじゃ。Javaの場合、答えはtrueかfalseのboolean型で返ってくる。

弟子D:条件式があっていればtrue、違っていればfalseで返ってくるんですよね。

師匠T:うむ、そのとおりじゃ。ちなみに、HSPでは1か0、昔のPCで使われていたBASICではたいてい-1か0で返ってくるぞ。さて、条件式の書き方は、次の通りじゃ。

-----------------------------------------------------------
変数or値or式 比較演算子 変数or値or式
例:a>5……aが5より大きければtrue(そうでなければfalse)
例:b<=5+3……bが5+3以下であればtrue(そうでなければfalse)
-----------------------------------------------------------

弟子D:比較演算子というのは、等号や不等号のことでいいんですよね?

師匠T:うむ、そのとおりじゃ。だが一つだけ気を付けることとして、等号は、=ではなく、==と書かなくてはならんのじゃ。また、例にもある通り、以上や以下を表現する場合は、>=、<=と、ノットイコール(~ではない)を表現するときには、!=と書かなくてはならん。ここには気を付けるように。

弟子D:はい。

師匠T:うむ。そしてもう一つ。条件式には、&&と||の論理演算子を使うこともできる。

弟子D:論理演算子……ですか?

師匠T:うむ。&&はAnd。つまり、左右の式の両方がtrueならtrueを返す。||はOr。左右の式のどちらかがtrueならtrueを返すものじゃ。このように使われる。

----------------------------------------------------------------
(a>5)&&(b==3)……(a>5)と(b==3)の両方の式がtrueならtrueを返す。
(c==5)||(d!=2)……(c==5)か(d!=2)のどちらかがtrueならtrueを返す。
----------------------------------------------------------------

弟子D:なるほど。

▽未来は無限!switch文じゃ!▽

師匠T:さて、話を条件判断に戻すぞ。if文の他にも、条件判断の文はある。それが、switch文じゃ。これは、BASICでのON~GOTO文や、SELECT CASE文と同じようなものじゃ。

弟子D:というと、その値によって色々と分岐させる命令、ということでしょうか?

師匠T:その通りじゃ。このswitch文はこのように書く。

----------------
switch (変数) {
case 値:

}

例:
switch (a)
case 1:
 処理A
case 2:
 処理B
}
----------------

師匠T:変数の値が、caseに書かれた値であれば、その下に書かれた処理を実行するのじゃ。例えば例であれば、変数aの値が1なら処理aを、2なら処理bを実行するのじゃ……が、ここで一つ注意する点がある。

弟子D:それは一体?

師匠T:基本的に、処理の最後にはbreak文を書くこと。これがないと、その下のcaseのところの処理まで実行してしまうのじゃ。例えば上の例ならば、aが1の場合、処理Aだけでなく、処理Bも実行してしまうのじゃ。

弟子D:むむ、ということは、いくつかの値の時の処理で同じ処理を行う場合、breakを省く手もあるわけですね?

師匠T:おぉ、よく気づいたの。その通りじゃ。例えば、1のときと2のときで同じ処理をさせたいときは、このように書けばよい。

----------
case 1:
case 2:
 処理
----------

弟子D:ふむふむ。あの師匠、もう一つ質問が。

師匠T:なんじゃな?

弟子D:例えば、1のときと、2のときと、3のときのcaseがあるとして、それ以外の数のときの処理をさせたいときはどうしたらいいんですか?

師匠T:その時は、caseではなく、defaultを使うのじゃ。defaultを入れると、どのcaseにも該当しない数のときに、そこの処理をやってくれるのじゃ。

--------------
switch (a) {
case 1:
 処理A
case 2:
 処理B
case 3:
 処理C
default:
 処理D
}
--------------

師匠T:上の例でいえば、変数aが1、2、3以外のとき、処理Dを実行するのじゃ。

弟子D:なるほど、わかりました、師匠!

師匠T:うむ。次回は、繰り返しの命令について説明する。予習、復習を忘れてはならぬぞ!

弟子D:はい、忘れます、師匠!

師匠T:……(黙って飛び蹴り)

※次の更新は、11月9日、師匠TのチャレンジARSゲーム!の予定です。お楽しみに!
posted by 裏編 at 07:15| 師匠のJava道場 | 更新情報をチェックする