分岐について
電車に乗っていると線路がいろいろなところで分岐しているのを見かけます。もし別の行き先であればさっきの分岐で反対に行っていたのかもしれないな、などと想像できます。電車の運行する人たちは線路の分岐を間違えずに切り替えるのだから凄いものです。
プログラムについても分岐が必要なことがあります。例えば自動車は免許を持っていないと運転できません。免許を持っている人は自動車の運転を許可してよいのですが持っていない人は認めることはできません。
真偽値
真実か虚偽かなど、二つのうちの一つを表現するboolean型という基本データ型があります。ブーリアンと読みます。この中には2種類の値trueもしくはfalseのどちらかが代入されます。trueトゥルーは英語で真実を意味し、falseファルスは虚偽を意味します。以下に宣言と代入の例を示します。
boolean i_am_alive = true; boolean i_am_dead = false;
これを和訳します。
ここに真偽値を示すboolean型の変数を二つ宣言します。一つ目のi_am_aliveという日本語で「私は生きている」という意味の変数にはtrueつまり真実の値を代入します。二つめのi_am_deadという日本語で「私は死んでいる」という意味の変数にはfalseつまり虚偽の値を代入します。
if文の構造
この真偽値を利用して処理を分岐させる構文がif文と呼ばれるものです。ifは「もし」の意味ですね。まず日本語で分岐表現してみましょう。
もし私が免許を持っていれば自動車を運転する。
これをif文で表現するとこのような表現になります。
if(i_have_a_licence){ System.out.println("I drive a car!"); }
ifの後の()にある値がtrueであれば{}の中の処理を実行します。falseの場合はなにもしません。変数i_have_a_licenseはboolean型でなければいけません。これに先立って
boolean i_have_a_license = true;
または
boolean i_have_a_license = false;
などの宣言が必要です。この変数がtrueであるときにだけ”I drive a car!”の文字列が標準出力から出力されます。
elseの使い方
ifに該当しない場合にもなにか処理を行いたい場合はelseを使います。elseは「〜以外」の意味です。
もし私が免許を持っていれば自動車を運転する。そうでない場合は歩く。
これをifとelseで表現します。
if(i_have_a_licence){ System.out.println("I drive a car!"); }else{ System.out.println("I walk!"); }
変数i_have_a_licenceがtrueの場合は上と同じです。falseの場合はelseの後の{}が実行され”I walk!”と出力されます。
ifとelseの連結
このifとelseは連結することができます。
もし私が免許を持っていれば自動車を運転する。そうでない場合、もしお金があればタクシーに乗る。そうでない場合、もし自転車があれば自転車で行く。そうでない場合は歩く。
if(i_have_a_licence){ System.out.println("I drive a car!"); }else if(i_have_money){ System.out.println("I take a taxi!"); }else if(i_have_a_bicycle){ System.out.println("I go by my bicycle!"); }else{ System.out.println("I walk!"); }
条件式の作り方:大小比較と「かつ」の連結に続きます。