C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#の論理演算子とは?&&・||・! の使い方をサンプル付きで解説

論理演算子は、真偽値(bool型:true / false)に対して使用する演算子です。C#では、主に以下の3つの論理演算子が用意されています。

演算子説明
&&論理AND(かつ)。両方のオペランドが true の場合にのみ、条件式全体が true になります。
||論理OR(または)。2つのオペランドのうち、どちらか一方でも true であれば、条件式全体が true になります。
!論理NOT(否定)。オペランドの論理状態を反転させます。条件が true なら false に、false なら true になります。

それでは、C#で論理演算子を実際にどう使うのか、具体例を見ていきましょう。まずは論理AND演算子(&&)による条件判定の基本形です。

if (a && b) {
   Console.WriteLine("Line 1 - Condition is true");
}

続いて、すべての論理演算子を組み合わせた完全なサンプルプログラムを紹介します。

サンプルコード

using System;

namespace Demo {
   class Program {
      static void Main(string[] args) {
         bool a = true;
         bool b = true;

         if (a && b) {
            Console.WriteLine("Line 1 - Condition is true");
         }

         if (a || b) {
            Console.WriteLine("Line 2 - Condition is true");
         }

         a = false;
         b = true;

         if (a && b) {
            Console.WriteLine("Line 3 - Condition is true");
         } else {
            Console.WriteLine("Line 3 - Condition is not true");
         }

         if (!(a && b)) {
            Console.WriteLine("Line 4 - Condition is true");
         }
         Console.ReadLine();
      }
   }
}

実行結果

Line 1 - Condition is true
Line 2 - Condition is true
Line 3 - Condition is not true
Line 4 - Condition is true

補足:短絡評価(ショートサーキット評価)について

&& 演算子と || 演算子は「短絡評価」を行います。これは、左側のオペランドだけですでに結果が確定している場合、右側のオペランドを評価しないという動作です。たとえば a && b において a が false であれば、b を評価することなく全体が false と確定します。この特性を活かすことで、無駄な処理を省いてパフォーマンスを向上させたり、null チェックなどを安全に行ったりすることができます。

  1. Pythonの<<と>>演算子とは?ビットシフト演算子の基本を解説

    Pythonの演算子(ビットシフト演算子)とはPythonにおける「<<」と「>>」は、それぞれ左シフト演算子・右シフト演算子と呼ばれるビット単位の演算子です。第1オペランドには数値オブジェクトの2進数表現が用いられ、第2オペランドには、そのビット列を左右どちらの方向に何桁ずらすかを指定します。これらの演算子を使うと、整数を2進数のビット列として操作でき、効率的な計算やフラグ管理などに役立ちます。左シフト演算子「<<」の使い方「<<」はビットパターンを左へシフトし、空いた右側(最下位ビット側)には0が埋められます。以下の例では、60(2進数で11

  2. Pythonのブール演算子とは?and・or・notの基本と使い方をわかりやすく解説

    Pythonにおけるブール演算子の基本Pythonでは、and、or、not の3つの論理演算子が提供されており、これらは「ブール演算子」とも呼ばれます。条件分岐や繰り返し処理など、プログラムの制御フローを組み立てる際に欠かせない重要な演算子です。それぞれの演算子には以下のような特徴があります。and:2つのオペランド(被演算子)を必要とし、両方が真(True)の場合にのみ True を返すor:2つのオペランドを必要とし、どちらか一方でも真であれば True を返すnot:1つのオペランドを必要とし、その真偽値を反転させるand演算子:両方が真のときだけTrueを返すブール演算子 and は