0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Javaのソースコードで、複雑な条件を使った分岐をしたいときは、「論理演算子」という演算子を使います。

論理演算子の種類には、次のようなものがあります。

1. && (AND)

&& 演算子を使った式は、左辺・右辺がともにtrueになる場合にのみ、条件がtrueになります。
例を見てみましょう。

&& の例1
a >= 3 && a == 2

上記の式では左辺・右辺の両方が成立することはあり得ないため、falseになります。

&& の例2
a >= 3 && a == 4

上記の式ではaの値が4のときに左辺・右辺の両方が成立するため、trueになります。

2. || (OR)

|| 演算子を使った式は、左辺・右辺のどちらかがtrueであれば、条件がtrueになります。
例を見てみましょう。

|| の例
a >= 3 || a == 2

上記の式の場合、左辺・右辺のどちらかがtrueであれば良いため、
aの値が3以上または2のときtrue になります。
また、aが1以下の場合はfalseになります。

3以上の場合の条件をみて、その結果がtrueであれば、「a==2」を見ずに、
条件の処理を実施します。

3. ! (NOT)

! 演算子は、オペランド(※boolean型の値)を1つとる単項演算子で、
オペランドがfalseの時に条件がtrueになります。
例を見てみましょう。

! の例
!(a == 6)

この式では aの値が6以外のとき、true になります。
注意点は、 a == 6 を先に比較するため、この条件式を()で囲う必要があります。
その条件に対して、! 演算子で否定します。


組み合わせて使う

複数の条件を組み合わせて使うこともできます。
例えば「 && 」で分岐する式を2つ用意した後、それぞれを()で囲んで論理演算子の左辺・右辺に配置することで、それらの条件を踏まえた上で更に分岐をさせることができます。

例を見てみましょう。

条件式の組み合わせの例
(age >= 18 && gender == "男性") || (age >= 18 && gender == "女性")

この式では、左辺と右辺の条件は以下です。

  • 左辺 (age >= 18 && gender == "男性") でtrueになる条件
    ⇒ ageの値が18以上でgenderの値が男性
  • 右辺 (age >= 18 && gender == "女性") でtrueになる条件
    ⇒ ageの値が18以上でgenderの値が女性

最後に、これら2つの条件を || 演算子を使って判断します。

どちらかがtrueであれば良いので、
 age(年齢)が18以上の
 gender(性別)が「男性」、「女性」どちらの場合でも trueとなります。


まとめ

if文などの中で論理演算子を使えば、より複雑な分岐をする処理ができるようになります。

一見「 == で良いのでは?」と思うような ! 演算子は、実は一番使うようになる演算子です。

冗長的なソースコードを防ぐためにも、論理演算子の練習をして慣れていきましょう!


参考文献

  • やさしいjava 第6版
    高橋麻奈 (著), SBクリエイティブ, 2016年8月
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?