Javaの代表的な分岐処理にはif文とswitch文があります。
分岐処理の代表格であるifの文法や特徴について解説します。
分岐処理はプログラム(計画)を組むときに「~の時」「~の場合」というような部分が出てきたときに利用します。
ifの構文とフロー
ifには分岐の仕方によって、「if」「if-else」「if-else if(if-else if-else)」の形(構文)があります。
各々の流れ(フロー)は以下のようになっています。
ifでは条件に一致した場合のみ処理2を行い、条件に一致しない場合は処理を行いません。
if-elseでは条件に一致した場合に処理2を行い、一致しなかった場合は別の処理3を行います。
if-else ifでは条件Aに一致した場合の処理2、条件Aに一致せずに条件Bに一致した場合の処理3を行います。条件Aにも条件Bにも一致しなかった場合は処理を行いません。
if-else ifにはelseを追加することもできます。elseを追加すると条件Aにも条件Bにも一致しなかった場合に処理4を行うことができます。
補足:上記のフローを自販機で考えてみる
飲み物が100円で購入できる自販機で、お金を投入して飲み物を購入するときのフローを例として考えてみます※。
※この例はifの構文(かたまり)は一つしか利用しないという条件で説明しています。
条件 | 投入された金額が100円以上 |
---|---|
処理1 | 飲み物が購入できる |
条件に一致する | 処理1が行われる(飲み物が購入できる) |
条件に一致しない | 処理は行われない(飲み物は購入できない) |
ifのフローだと飲み物が購入できない時に別の処理を行えないため、例えば入れたお金を返金するような処理を行うことができません。
そこで、入れたお金を返金するような処理をelseで追加します。
条件 | 投入された金額が100円以上 |
---|---|
処理1 | 飲み物が購入できる |
処理2 | 自販機に入れたお金を返金する |
条件に一致する | 処理1が行われる(飲み物が購入できる) |
条件に一致しない | 処理2が行われる(返金処理がされる) |
上のif-elseで100円に満たない場合の返金処理はできるようになりましたが、500円玉を入れた際にお釣りが出てくるような処理が行われません。
そこで、if-else if – elseを利用して、お釣りまで考慮したフローに変更します。
条件A | 投入された金額が100円 |
---|---|
条件B | 投入された金額が100円より多い(100円は含まない) |
処理1 | 飲み物が購入できるが、お釣りはない |
処理2 | 飲み物が購入でき、お釣りが返ってくる |
処理3 | 自販機に入れたお金を返金する |
条件Aに一致する | 処理1が行われる(飲み物購入、お釣りなし) |
条件Bに一致する | 処理2が行われる(飲み物購入、お釣りあり) |
条件に一致しない | 処理3が行われる(返金処理がされる) |
if-else if-elseでの自販機フローを図解にすると以下のようになります。
まとめ
- ifを利用すると分岐処理がおこなえる
- ifは分岐の仕方により「if」「if – else」「if – else if -else」の形がある