コンテンツへスキップ

レッスン4:④ 論理演算子(かつ / または / でない)


概要

ここでは、論理演算子について学習します。論理演算子には、AND 演算子(かつ)、OR 演算子(または)、NOT 演算子(でない)、XOR 演算子(排他的論理和)があります。よく使われる AND、OR、NOT について解説したいと思います。

そもそも論理式とは、条件を満たすか満たさないか(真か偽、true か false)を表現するものです。例えば下図のように、「正の数」という条件があったとします。その条件を満たすもの(1 や 2、10 など)と、満たさないもの(-3 や -6、0 など)、が存在します。

1

論理演算子を使うと、複数の論理式を評価することができます。論理演算子は下表の通りです。

論理演算子演算子名呼び方意味
&&AND 演算子
(論理積)
かつ左辺と右辺の論理式のどちらも満たす
||OR 演算子
(論理和)
または左辺または右辺、もしくはその両方を満たす
!NOT 演算子
(否定)
でないNOT 演算子についた論理式を満たさないもの

論理演算子を図で表すと下のようになります。重なった部分が論理演算を満たす領域です。

AND 演算子

4

OR 演算子

3

NOT 演算子

5

それでは、下図の論理演算をプログラミングしてみましょう。左辺の論理式は正の数(x > 0)、右辺の論理式は偶数(x%2 == 0)とします。

2

STEP1:C# プログラム(ファイル)を追加する

こちらの記事を参考にして、コンソールアプリ(プロジェクト名:Lesson4)に C# プログラム(ファイル名:Lesson4_4)を追加します。

STEP2:プログラムを記述する

Lesson4_4.cs のプログラムを下記のように変更します。

namespace Lesson4
{
    public static class Lesson4_4
    {
        /// <summary>
        /// (1). 論理演算をプログラミング
        /// </summary>
        public static void Text1()
        {
            int x = 3;
            Console.WriteLine("正の数 && 偶数");
            if(x>0 && x%2 == 0)
            {
                Console.WriteLine(" {0} は、満たします。", x);
            }
            else
            {
                Console.WriteLine(" {0} は、満たしません。", x);
            }
            Console.WriteLine("");

            Console.WriteLine("正の数 || 偶数");
            if (x > 0 || x % 2 == 0)
            {
                Console.WriteLine(" {0} は、満たします。", x);
            }
            else
            {
                Console.WriteLine(" {0} は、満たしません。", x);
            }
            Console.WriteLine("");

            Console.WriteLine("!正の数");
            if (!(x > 0))
            {
                Console.WriteLine(" {0} は、正の数ではありません。", x);
            }
            else
            {
                Console.WriteLine(" {0} は、正の数です。", x);
            }
        }
    }
}

STEP3:動作を確認する

x の値を色々と変えて、以下のことを確認してみましょう。

AND 演算「条件 A && 条件 B」は、どちらの条件も満たす数字(2、10、1000、など)。
OR 演算 「条件 A || 条件 B」 は、どちらか一方、もしくは両方の条件を満たす数字(1、7、2、10、1000、0、-6、など)。
NOT 演算「!条件 A」は、A の条件を満たさない数字(-3、-0.5、0、-6、、-1、-100.4など)。

次に進む

次は、else if 文を使った多分岐について学びます。