論理演算子とは、プログラミング言語が、開発者が論理積、論理和などの論理演算を行うために用意された演算子を意味します。
Javaでは、3つの演算子である &&(論理積 AND)、|| (論理和 OR)、!(否定) を組み合わせて論理演算を行います。
論理演算子は左の評価式と右の評価式を指定された論理演算子の結果をboolean型で返します。
論理演算 | 論理演算子 | 説明 |
---|---|---|
論理積(AND) | 評価式A &&評価式B | 左の評価式(評価式A)をboolean型で評価します。 右の評価式(評価式B)をboolean型で評価します。 左右の評価式の両方がtrue の場合には、結果としてtrueを返します。 左右の評価式のどちらかがfalseの場合には、結果としてfalseを返します。 日本語で「AかつBの両方に該当する場合」を意味します。 |
論理和(OR) | 評価式A || 評価式B | 左の評価式(評価式A)をboolean型で評価します。 右の評価式(評価式B)をboolean型で評価します。 左右の評価式のどちらかがtrueの場合には、結果としてtrueを返します。 左右の評価式の両方がfalseの場合には、結果としてfalseを返します。 日本語で「A又はBのどちらかに該当する場合」を意味します。 |
否定(NOT) | !評価式A | 評価式(評価式A)のboolean結果を反転させます。 評価式がtrueの場合には、結果としてfalseを返します。 評価式がfalseの場合には、結果としてfalseを返します。 日本語で「Aに該当しない場合」を意味します。 |
主に if文に利用されます。評価式は、「()」で囲みます。
論理演算子サンプル
boolean a = true;
boolean b = false;
System.out.println(" A AND B = " + ( a && b ) );
System.out.println(" A OR B = " + ( a || b ) );
System.out.println(" NOT A = " + !a );
System.out.println(" NOT B = " + !b );
実行結果
A AND B = false
A OR B = true
NOT A = false
NOT B = true
上記サンプルの取りうる全てのパターンを網羅すると16通りあります。
その点について、優れたベン図がありますので、以下をご確認下さい。
何かしらのビジネスロジック(処理)を英語で示した場合には、not、 or 、and 、but等が英語の文章に出現するので、論理演算に大変落としやすいです。
日本語の場合には、表現方法が豊かにあり、曖昧な日本語で表現すると
ベン図16通りのどれを指し示しているか開発者が判断できなくなります。
そのため、詳細設計フェーズの前に設計書の日本語の記述を統一する事がチームで開発する際にとても重要になります。