【Java初心者】条件式の仕組みと使い方

条件式[==][<][>]の仕組みや使い方について解説していきます。条件式を理解すれば、if文やwhile文などの条件を正確に使いこなすことができるようになります。

条件式の仕組み

Javaプログラミングにおける条件式は、一般的な計算式とは考え方が大きく違い、処理を分岐する条件であるif文や繰り返し処理を行うwhile文で利用する式です。

if文やwhile文は、条件がYesかNoかを判断してそのブロックないの処理を行うかどうかを決めます。つまり、条件式は計算の結果が必ずtrueかfalseになるように記述しなければなりません。

条件式は、専用の演算子の組み合わせによって真偽値を出し、それによってif文やwhile文の中の処理を行うかどうかを判断します。演算子については下記の項目で詳しく説明していきます。

条件式における演算子の種類

普通の計算式では見ることのない、[==]や[<=]などの演算子を使用する演算子を関係演算子といいます。

関係演算子を使用した条件式を一つの文の中で複数記載することもあり、[&&]や[||]などの演算子を使用して条件式同士を結合します。この際に使用する演算子を論理演算子といいます。

今回ご紹介する関係演算子と論理演算子は以下の8種類です。

演算子意味種類
==右辺と左辺が等しい関係演算子
!=右辺と左辺が異なる関係演算子
<右辺が左辺より大きい関係演算子
>右辺が左辺より小さい関係演算子
<=右辺が左辺以上関係演算子
>=右辺が左辺以下関係演算子
&&右辺かつ左辺なら論理演算子
||右辺あるいは左辺なら論理演算子
条件式内の演算子の種類

関係演算子の使い方

== (右辺と左辺が等しい)

Javaプログラミングにおいて、[=]が1つだと代入を意味するため、左右が等しいことを示す際には[==]を使用します。代入の[=]は条件式では基本的に使用しないので間違えないように注意しましょう。

[==]は主に、数字同士の比較や真偽値の比較に使用します。

if文:右辺と左辺が等しければブロック内の処理を行う。
while文:右辺と左辺の値が等しい間ブロック内の処理を行う。

int a = 1;
if(a == 1){
System.out.println(a);
}

!= (右辺と左辺が異なる)

右辺と左辺が異なることを意味する[!=]は、間違った値を炙り出すときや値を探すまで繰り返す時などに使用します。

数字同士や真偽値の比較に使用します。

if文:右辺と左辺が異なるならブロック内の処理を行う
while文:右辺と左辺が異なる間ブロック内の処理を行う。

int a = 0;
while(a != 5){            ⇦aと5の値が異なる間繰り返す
a++;
}

< (右辺が左辺より大きい)

右辺が左辺より大きいことを意味する[<]は、数値同士の大小の比較に使用します。

以下のような場合では、aが0~4の間、繰り返し処理をします。
繰り返し処理は、aの値が0,1,2,3,4の場合に行うため、合計5回行います。

int a = 0;
while(a < 5){
a++;
}

> (右辺が左辺より小さい)

右辺が左辺より小さいことを意味する[>]は、数値同士の大小の比較に使用します。

以下のような場合では、bが10~6の間、繰り返し処理をします。
繰り返し処理は、bの値が10,9,8,7,6の場合に行うため、合計5回行います。

int b = 0;
while(b > 5){
b--;
}

<= (右辺が左辺以上)

右辺が左辺以上を意味する[<=]は、[<]と同様に数値同士の大小の比較に使用します。

[<]との大きな違いは、左右の値が等しい場合も条件に合致する点です。
[<]と[<=]では、ループの条件として使用した際に処理をする回数が異なるために、注意が必要です。

以下のような場合では、aが0~5の間、繰り返し処理をします。
繰り返し処理は、aの値が0,1,2,3,4,5の場合に行うため、合計6回行います。

int a = 0;
while(a <= 5){
a++;
}

>= (右辺が左辺以下)

右辺が左辺以下であることを意味する[>=]も、数値の代償を比較する際に使用します。

[>]との違いは、[<=]と[<]の違いと同様に、左右の値が等しい場合も条件に合致する点です。こちらもループの条件として使用した際には処理の回数が[>]と異なります。

以下のような場合では、bが10~6の間、繰り返し処理をします。
繰り返し処理は、bの値が10,9,8,7,6,5の場合に行うため、合計6回行います。

int b = 0;
while(b >= 5){
b--;
}

論理演算子の使い方

右辺かつ左辺を意味する[&&]と右辺あるいは左辺を意味する[||]は、条件式内で左右に真偽値が存在する場合に使用します。主に条件式内で複数の関係演算子を組み合わせる際に利用します。

&& (右辺かつ左辺なら)

条件式内にて[&&]を利用した場合は、複数の条件が全て真にになった際にブロック内の処理を行うことを意味します。

以下のように、条件がいくつあっても全ての条件がtrueになればtrueになり、1つでもfalseの条件が存在すればfalseとなります。

int a = 0:
int b = 1;
if(a == 0 && b == 0){     ⇦ bの条件を満たさないため、ブロック内の処理を行わない
.....
}

|| (右辺あるいは左辺なら)

条件式内にて[||]を利用した場合は、複数の条件の内1つでも真ならブロック内の処理を行うことを意味します。

[&&]とは違い、条件がいくつあっても、falseの条件がいくつあろうとtrueとなる条件が1つでもあればブロック内の処理を行います。

int a = 0:
int b = 1;
int c = 2;
if(a == 0 || b == 0 || c == 0){     ⇦ aの条件を満たしているので処理を行う
.....
}

以上、参考になった方も参考にならなかった方もありがとうございました。