条件分岐①(条件分岐とは?if文の基本)【ゼロから始めるJavaの基礎~その16~】

制御構造と制御文

プログラムの中では複雑な機能を実現するために様々な処理が、様々な流れで行われています。

プログラムの2大構造とも言えるのが、今回からご紹介していく『分岐』とその後ご紹介する『繰り返し』の構造です。

これらの構造をプログラム内に記述するための構文のことを『制御文』と呼んだりします。

一応ご紹介しましたが、これらの言葉は別に覚えなくて大丈夫です(笑)

「プログラムを作る上では、『分岐と繰り返し』という必要不可欠な構造がある」ということだけ頭に置いておいてください。

条件分岐って何?

少し難しそうな名前ですが、皆さんも普段から毎日欠かさず『条件分岐』を行っているはずです。例を上げてみましょう。

条件Yesの場合の行動Noの場合の行動
雨が降っている傘をさす(特別何もしない)
所持金が1000円以下コンビニ弁当にするラーメンを食べる

人によって結果は変わりますが、「前提となる条件があって、その条件が『Yes』になるか『No』になるかでその後の行動を決めているという流れ」は同じですね。

プログラミングでも『Yes/No』という表現が、真偽値のデータ型『boolean型』の値である『true/false』に変わるだけで、流れは同じです。

さっそくプログラムで条件分岐を作る際の構文を見ていきましょう!

【構文】

if (条件式) {式の結果がtrueの場合に行う処理};

まずは至ってシンプルな条件分岐を作るための構文です。

条件式の結果がtrueであれば『{}』の中に記述された処理を実行し、結果がfalseだった場合は、特に処理は行われません

ちなみにこのように『if』というキーワードから始まる制御文は『if文』と呼ぶことが多いです。先程の例を構文に当てはめて見ましょう。

if (雨が降っている) {傘をさす};

条件は『雨が降っているか』ですね。そこから得られる結果は、『雨が降っているならtrue』、『降っていなければfalse』です

trueの場合は傘をさしますが、falseの場合は傘をさす必要はないので何もしません。

条件分岐のイメージは少し掴めてきましたでしょうか?

一度サンプルを見て、プログラム上ではどのように記述するのかを、確認しておきましょう。

【サンプル】

int num = 5;

if (num == 5) {
System.out.println("条件式の結果はtrueです");
};

if (num == 10) {
System.out.println("条件式の結果はtrueです");
};

【実行結果】

今回のサンプルでは、まず整数の値を持つ変数『num』を用意し、その変数の値を条件式の中で実数値と比較しています。

今回用意した条件は『変数numの値は5と等しいか』という条件と、『変数numの値は10と等しいか』という2つの条件です。

等しいかを比較する『==』という演算子を忘れてしまった方はこちらのページをご確認くださいね。

1つ目の条件式は結果が『true』となりますので、『{}』の中に記述された標準出力の処理が実行され、コンソールに文字列が出力されます。

2つ目の条件式は結果が『false』になりますので、『{}』の中の処理は実行されず、つまり何も起こりません。

条件式の結果が『false』となる場合というのは、何だかヤバい気がして、プログラムが止まってしまうと勘違いされる方がいるようですが、『false』の場合でもプログラムは止まらずに次の処理が行われるだけですのでご安心ください

【サンプル】

int num = 5;

if (num == 5) {
System.out.println("numの値は5です");
};

if (num == 10) {
System.out.println("numの値は10です");
};

num = 15;

if (num == 15) {
System.out.println("numの値は15です");
};

【実行結果】

サンプルの7行目の条件式では、『numの値が10と等しいか』という比較が行われますが、この時点ではnumの値は5なので結果は『false』となります。

もし、ここでプログラムが止まった場合は8行目以降の処理は行われないはずですが、実行結果を見てみるとしっかりと文字列が出力されているのが分かりますね。

7行目の条件式の結果は『false』だったので8~9行目の処理は行われませんが、11行目でnumの値を再代入する処理はちゃんと行われているので、13行目の条件式の結果が『true』となって、14行目の標準出力の処理が行われています。

このように条件式が『false』となる場合も、条件式の中に記述された処理が実行されないというだけで、プログラム自体は動き続けます

『false』という言葉が少しややこしいかもしれませんが、『true』でも『false』でもプログラム的には正しい動作をしていますので覚えておいてくださいね。

今回ご紹介した条件分岐は条件式の結果が『true』だったら何かするけど、『false』だったら何もしないという1つの選択肢しか持たない分岐でした。

次回は条件によって2つ以上の選択肢を持てるような分岐の構文をご紹介します!

今回も最後までお読み頂きありがとうございました!