プログラミングの論理演算をわかりやすく解説【概要と具体例】

【論理演算】プログラミングの「かつ、または、ではない」を解説

※当サイトには広告が掲載されています。ご了承くださいm(_ _)m

プログラミングに必要な「論理演算」って何かな?

こんな疑問にお答えします。

本記事の内容
  • 【論理演算】プログラミングの「かつ、または、ではない」をわかりやすく解説

結論から言うと、論理演算とは「ある事象が正しい(真)か正しくない(偽)かを判断する演算(計算)のこと」です。

論理演算がわかっているとプログラミングの条件分岐を使いこなせるようになりますし、あらゆるプログラムで使われるほど基本的なことなので論理演算を理解することは必須です。

そんな論理演算をエンジニアの私がわかりやすく解説するので最後までご覧くださいm(_ _)m

論理演算を理解するには真偽値がわかっていないといけません。
真偽値については「【必須知識】プログラミングで重要な真偽値を解説【条件文で使用】」の記事をご覧ください。
スポンサーリンク

【論理演算】プログラミングの「かつ、または、ではない」をわかりやすく解説

繰り返しですが、論理演算とは「ある事象が正しい(真)か正しくない(偽)かを判断する演算(計算)のこと」です。

図にするとこんなイメージで、2つの値を入力するとなにかしらの演算がされて1つの結果を出力します。

このときの入力と出力の値は真か偽のどちらかです。

例えば、真と真を入力すると出力は真と偽のどちらになるか?ということです。

コンピューターは情報(データ)を2進法で表現するので真を1、偽を0として扱います。

コンピューターの情報(データ)の扱い方については「【初心者向け】パソコンのビットとバイトをエンジニアが丁寧に解説」の記事で詳しく解説しています。

次はその「何かしらの演算」の種類(論理演算の種類)について解説しますね。

論理演算の種類

論理演算の代表的なものには次の4種類があります。

  • 論理積ろんりせき(ANDアンド演算)
  • 論理和ろんりわ(ORオア演算)
  • 論理否定ろんりひてい(NOTノット演算)
  • 排他的論理和はいたてきろんりわ(XORエクスオア演算)

1つずつ解説します。

論理積(AND演算)、A かつ B

論理積は「入力のどちらも真(1)の場合のみ真(1)が出力される演算」です。

この関係を表にすると次のとおりです。AとBの2つが入力でCが出力です。

パターン 入力 出力
A B C
1 偽(0) 偽(0) 偽(0)
2 偽(0) 真(1) 偽(0)
3 真(1) 偽(0) 偽(0)
4 真(1) 真(1) 真(1)
ちなみに、この表を真理値表といいます。論理演算において考えられる入力の組合せと対応する出力を表にしたものです。

また、この関係を図にするとこんな感じです。AとBの2つが入力で濃いオレンジ部分が出力です。

ちなみに、このような集合関係を表現する図をベン図といいます。このベン図を描いて整理すると理解しやすいですよ。

論理積を日本語では「A かつ B」、英語では「A AND B」と表現します。

つまり、「(A = 真) かつ (B = 真)のときに真になる」ということですね。

論理和(OR演算)、A または B

論理和は「入力のどちらかが真(1)なら真(1)が出力される演算」です。

真理値表は次のとおりです。AとBの2つが入力でCが出力です。

パターン 入力 出力
A B C
1 偽(0) 偽(0) 偽(0)
2 偽(0) 真(1) 真(1)
3 真(1) 偽(0) 真(1)
4 真(1) 真(1) 真(1)

ベン図は次の通りです。AとBの2つが入力で濃いオレンジ部分が出力です。

論理和を日本語では「A または B」、英語では「A OR B」と表現します。

つまり、「(A = 真) または (B = 真)のときに真になる」ということですね。

ここで注意しないといけないのが、AもBも真の場合は真になるということです。論理和はAかBのどちらかだけ・・・・・・が真のときという意味ではないです。AかBのどちらかが真に決まった時点で真になります。
ちなみに、プログラマーの友人は飛行機の機内食で「フィッシュ or チキン?」と聞かれて両方と答えました笑

論理否定(NOT演算)、A ではない

論理否定は「入力の逆の値が出力される演算」です。

真理値表は次のとおりです。Aが入力でCが出力です。

パターン 入力 出力
A C
1 偽(0) 真(1)
2 真(1) 偽(0)

ベン図は次の通りです。Aが入力で濃いオレンジ部分が出力です。

論理否定を日本語では「A ではない」、英語では「NOT A」と表現します。

つまり、「A ではない(=Aの逆)」ということですね。

排他的論理和(XOR)

排他的論理和は「入力のどちらも真(1)もしくは偽(0)なら偽(0)が出力される演算」です。

ちょっとややこしいですね。真理値表とベン図でしっかり理解しましょう。

真理値表は次のとおりです。AとBの2つが入力でCが出力です。

パターン 入力 出力
A B C
1 偽(0) 偽(0) 偽(0)
2 偽(0) 真(1) 真(1)
3 真(1) 偽(0) 真(1)
4 真(1) 真(1) 偽(0)

ベン図は次の通りです。AとBの2つが入力で濃いオレンジ部分が出力です。

排他的論理和は2つの数値が同じかどうかを判定することができます。同じなら真、違うなら偽ですね。

ただ、なかなか使い所が難しいのでこういうのがあるんだなぁくらいの認識で大丈夫です。

論理演算を使いこなそう!

以上をおさらいすると次のとおりです。

  • 論理演算とは「ある事象が正しい(真)か正しくない(偽)かを判断する演算(計算)のこと」
  • 論理演算の代表的なものには「論理積、論理和、論理否定、排他的論理和」がある

上記の通りです。

プログラミングでは処理を条件分岐するときに論理演算をよく使いますね。

  • 人が近づく かつ 部屋が暗い ならライトを点ける
  • 前方に車を検知する または 後方に人を検知する なら車を停止する

とかですね。

ぜひ、論理演算を使いこなしてプログラミングしてみてください(^_^)/~

タイトルとURLをコピーしました