【超基本】Javaの論理演算子の使い方

  • このエントリーをはてなブックマークに追加
  • Pocket
論理演算子

Javaで「○○かつ××」や「○○または××」のとき□□する、というように論理演算を扱うには論理演算子と呼ばれるものを使う。

このページではJavaの論理演算子についてまとめてご紹介する。初心者の方はぜひ習得しておこう。

Javaの論理演算子と近いもので条件演算子というものもある。「&&」と「||」だ。これも論理演算子と呼ぶことがあり、またこちらの方が有名だし、使われていたりする。

下記で解説しているので、こちらも確認して欲しい。

論理演算とは?

「この条件とこの条件どちらにもマッチしたとき」や「この条件とこの条件のどちらかにマッチしたとき」だけに○○したいというプログラムを書くことはとてもよくある。

例えば自動販売機のプログラムで、「見た目が男性」で「20代」だったら、ホットコーヒーをオススメする、などだ。こういったときに論理演算子を使う。

論理演算、本を読むと大体次のような図で表現がされている。Aという条件とBという条件があったときに、どこまでがYes(True)になって、どこまでがNo(False)になるかだ。

論理演算

それぞれ確認をしていこう。

Javaの論理演算子の使い方

Javaの論理演算子は、論理演算を行う演算子だ。論理演算は、boolean型の値を演算子のオペランドに与えて論理積や論理和などの演算を行い、結果をboolean型の値として生み出す。

論理演算子にはビット演算子と共通の演算子(&, |, ^)がある。違いは、Boolean値に対して演算するか、それとも数値に対して演算するかである。

まずは、演算子の種類から見ていこう。

演算子の種類

論理演算子には、4つの種類がある。次のセクションでこれらのひとつひとつの演算子の詳細を説明している。

  • Boolean論理演算子 &
  • Boolean論理演算子 |
  • Boolean論理演算子 ^
  • 論理補数演算子 !

論理演算子の詳細を見てみよう。

 「かつ」を表すBoolean論理演算子 &

演算子「&」は「かつ」を表す。少々難しく言うと論理積だ。&演算子の左と右にあるオペランドのBoolean型の値に対して演算が行われる。

下記でいうと、青い部分のときだけTrueになる。

論理積

書き方の基本は簡単だ。

演算結果 = オペランド1 & オペランド2;

 

オペランド1とオペランド2の論理積の演算結果は次のようになる。

  • オペランド1とオペランド2が両方ともtrueならば、演算結果はtrueとなる。
  • それ以外はfalseとなる。

項目

オペランド1

true

true

false

False

オペランド2

true

false

true

False

演算結果

true

false

false

False

「または」を表すBoolean論理演算子 |

演算子「|」はBoolean型の値の論理和を求める。論理和とは「または」という意味だ。だから図で表すともっとも広い。条件に当てはまるものだいたい全部。

論理和

|演算子の左と右にあるふたつのオペランドのBoolean型の値に対して演算が行われる。

書き方の基本は簡単だ。

演算結果 = オペランド1 | オペランド2;

 

オペランド1とオペランド2の論理和の演算結果は次のようになる。

  • オペランド1とオペランド2のどちらかがtrueならば、演算結果はtrueとなる。
  • それ以外はfalseとなる。

項目

オペランド1

true

true

false

false

オペランド2

true

false

true

false

演算結果

true

true

true

false

「結果が異なれば」を表すBoolean論理演算子 ^

演算子「^」はBoolean型の値の排他論理和を求める。^演算子の左と右にあるふたつのオペランドのBoolean型の値に対して演算が行われる。

排他論理和というから言葉が難しい。簡単な日本語に直すと、「1の条件と2の条件の結果が違ければOK」という話だ。「または」から「かつ」の部分を除いた下記の部分がこれに当たる。

排他的論理演算子

書き方の基本は簡単だ。

演算結果 = オペランド1 ^ オペランド2;

オペランド1とオペランド2の排他論理和の演算結果は次のようになる。

  • オペランド1とオペランド2の値が異なれば、演算結果はtrueとなる。
  • それ以外はfalseとなる。

項目

オペランド1

true

true

false

false

オペランド2

true

false

true

false

演算結果

false

true

true

false

論理補数演算子 !

演算子「!」は補数を求める。!演算子の右にあるオペランドのBoolean型の値に対して演算が行われる。要するに、「否定」とか「逆」を意味する。それ以外、という感じだ。

図で表すと次のようになる。

否定

書き方の基本は簡単だ。

演算結果 = !オペランド;

オペランド1とオペランド2の補数の演算結果は次のようになる。

  • オペランドがtrueならば、演算結果はfalseとなる。
  • オペランドがfalseならば、演算結果はtrueとなる。

項目

オペランド

true

false

演算結果

false

true

論理演算子のサンプルプログラム

このサンプルプログラムは、演算子の最初のオペランドがtrueで2番目のオペランドがfalseのとき、3種類の論理演算子はどのような演算結果を出すのかを示している。実際のコードで書き方と演算結果を確かめよう。

実行結果

なんとなくお分かりいただけただろうか? 

これだけだとわかりにくいかもしれないが、if文などで条件を分岐していくプログラムを書いたとき、よく理解できるようになるだろう。

また、上でも書いたが、実際には「&&」や「||」の条件演算子(論理演算子)の方がよく見る。下記も確認しておいて欲しい。

まとめ

このページでは論理演算子についてまとめてお伝えをしてきた。いずれもよく使うので、使い方含め覚えてしまおう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*