未分類

【Javaの条件分岐は9割がif文です】ifとelseifとelseを使い倒すよ

こんにちは、エンジニアのオノデラユウトです。

Javaでよく使う構文にif文があります。(if文はJavaに限らないね。)

もうプログラム中にif文はしょっちゅう見かけます。各クラスにだいたい1つはif文に出くわします。

多用しすぎです。サンマイクロシステムズがif文の使用数制限を設けていなくてよかったです。

でもこれだけ多用されるということは、if文はとても使いやすい構文ということです。

たしかにif文は使いやすい。

ifとelseで2つに分岐できるし、elseifを使えば無限に条件分岐できます。

elseifで条件追加しすぎると、冗長になってしまうリスクは否めないけど、構文構造が割とシンプルなので、初心者からベテランまでif文は多用します。というか、代替構文がswitchぐらいしかないからifになるよね。

【Javaで考える】if文の使い方

if文とは「もし、〇〇ならXXを実行する」という意味を持つ構文です。「もし」っていう意味はifの日本語訳と同じです。

ifだけだと「もし、〇〇ならXXを実行する」だけですが、他に追記すればあらゆるパターンの条件分岐文が作成できます。

基本的な書き方は以下です。


if(条件){
条件に合致した場合に実行する処理
}


条件に合致したら{}の中に進んで{}内の処理を実行します。条件に合致しない場合は{}内に入らず進みます。

Javaのif文①:シンプルなif文

一番シンプルなif文はifだけを使います。以下が例文です。

a == 0が条件です。Javaでは、整数が同じだったらを表す場合は=を2つ書くルールなので、このif文は、もしa=0なら、”ゴール”と出力します。

実際にaの宣言時に0を代入しているため、この条件は正しいので実行すれば、”ゴール”と出力されます。

Javaのif文②:ifと&&(アンド)

条件式は複数の条件を記述できます。そして、複数条件を設定する場合は&&や||を付けて複数の条件にします。

まずは&&からです。&&は複数条件を記述するときに使い、2つの条件に合致した場合のみ{}の中に入ります。

これはaが0で、かつ、bが0より大きい場合にゴールと出力するif文です。

aは0、bは1で宣言したのち、他に値が代入されていないため、{}の中に進みます。

重要なのが2つの条件に合致しているという点です。bには1を代入していますが、int b = 0;と宣言したとしたら、a==0だけ合致して、b>0が合致しないので、{}内には進みません。
複数条件で複数条件に合致した場合のみ{}内に進ませたいときに&&を使います。

ちなみに&&だけでなく、&もあります。複雑ですよね(笑)

一応、説明しておくと&&は1つ目の条件(&&の前の条件)が合致しなかったら2つ目の条件(&&の後ろの条件)が合致するか否か、も判断せずif文から抜けます。

でも&の場合は、1つ目の条件が合致しなくても、一応、2つ目の条件が合致するかの判断も行います。まぁ結局1つ目の条件時点で合致していないので、{}内に進まないのですが。。

合致しない条件が登場した時点でif文が終了するのは&&、合致しない条件が登場しても一応、最後まで条件を見るのが&です。

細かく言えば、この使い分けで値が変わったりもしますが、ほぼ同じなのであまり意識しなくていいと思います。

基本は&&を使います。

Javaのif文③:ifと||(オアー)

||は複数条件を記述するときに使い、いずれかの条件が合致した場合のみ{}の中に入ります。条件式のいずれか1つが合致すればOKです。

これはaが0もしくはbが0の場合に”ゴール”と出力するif文です。aは0、bは1で宣言したのち、他に値が代入されていませんね。
ですので、if文の条件式の時には0、bには1が代入されている状態です。

条件を見ると、a == 0には合致しますが、 b == 0には合致しません。でも、||はいずれかの条件に合致すれば{}内に入るので、このif文も{}内に入ります。

重要なのは複数条件のうち、1つでも条件に合致していればよいという点です。

もちろん、複数条件が合致しても良いです。
複数条件でいずれかの条件に合致した場合のみ{}内に進ませたいときに||を使います。

ちなみに||だけでなく、|もあります。
&と同じく、複雑ですよね(笑)
一応、説明しておくと||は1つ目の条件(||の前の条件)が合致したら、2つ目の条件(||の後ろの条件)が合致するか否か、を判断せずに{}の中に入ります。でも|の場合は、1つ目の条件が合致しても、一応、2つ目の条件が合致するかの判断も行います。

1つ目の条件が合致しているので、結局、{}内に進むのですが。

合致する条件が登場した時点で{}の中に進むのが||、合致した条件が登場しても一応、最後まで条件を見るのが|です。

&と同じく、|もほぼ同じなのであまり意識しなくていいと思います。

基本は||を使います。

Javaのif文④:ifとelse

ifの条件だけじゃ足りないときがあります。

「もし、〇〇ならXXを実行するが、〇〇じゃなければ、△△を実行する」みたいな。

こんな時はif文とelse文を使います。

基本的な書き方は以下です。

if(条件){
条件に合致した場合に実行する処理
}else{
条件に合致しない場合に実行する処理
}

条件に合致したらif後の中に進んで合致しなければelse後の{}内に進みます。

これはaが0の場合は”合格”と出力し、0以外の場合は”不合格”と出力するif、else文です。まあ簡単ですね。elseがくっついただけです。

Javaのif文⑤:ifとelseifとelse

ifとelseだけでは足りないときがあります。たくさんの条件で分岐したいときです。その時はif、elseに加えて、elseifも使います。

これはaが0の場合は”合格”と出力し、1の場合は”不合格”と出力し、それ以外の場合は”判定なし”と出力するif、elseif、ele文です。if文にelseifとelseがくっつきました。

elseifは原則、いくつでも書けますが、あまり書きすぎるとわけがわからなくなるので、気を付けましょう。

条件が多いときはswitch文の方が見やすくていいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です