.NET ヘルプ

C# 論理演算子(開発者のための仕組み)

プログラミングにおいて条件文を扱う際、論理演算子を理解することは不可欠です。 XORから算術演算まで、それらは与えられた条件の真偽値を決定する上で重要な役割を果たします。

このガイドでは、C#における論理演算子の基本について説明します。ブール値、演算子の優先順位、論理否定などの概念を含み、さらに詳しく学ぶことができます。

論理演算子とは何ですか?

論理演算子、一般に論理演算と呼ばれるものは、プログラミングにおける意思決定の中心を成します。 それらはブール式で動作し、与えられた条件に基づいて、真または偽のいずれかのブール値を生成します。 これらの演算子は、特定の条件に基づいて特定のコードブロックを実行することを可能にし、プログラムのフローを制御する上で重要な役割を果たします。

以下では、C#の異なる論理演算子について掘り下げ、その機能を理解し、論理演算子をアプリケーションに組み込んで、精度と効率を持って論理操作を実行する方法を紹介します。

C#の論理演算子の種類

論理積演算子 (&&)

論理AND演算子 (&&) は、2つのブール式を結合し、両方が真の場合に真を返します。 どちらか一方または両方が偽である場合、結果は偽になります。 すべての条件を満たす必要がある複数の条件シナリオで一般的に使用されます。 例えば、ユーザーが所定の年齢に達しており、購入するための十分な残高があるかどうかを検証する。

&& 演算子:

  • 左オペランドを評価します。
  • 左オペランドが偽の場合、式全体が偽となります。
  • 左オペランドが真の場合、右オペランドが評価されます
  • 両方のオペランドが真の場合、式は真です。

    左オペランドがfalseの場合、右オペランドは評価されません。これは、式全体が確実にfalseとなるためです。

class Program
{
   static void Main(string [] args)
   {
       bool isAdult = true;
       bool hasBalance = false;
       bool canPurchase = isAdult && hasBalance;
       Console.WriteLine(canPurchase); // Output: false
   }
}
class Program
{
   static void Main(string [] args)
   {
       bool isAdult = true;
       bool hasBalance = false;
       bool canPurchase = isAdult && hasBalance;
       Console.WriteLine(canPurchase); // Output: false
   }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

この例では、isAdult は true ですが、hasBalance は false なので、結果は false です。

論理 OR 演算子 (

)

論理 OR 演算子

) は、2つのブール式を組み合わせ、少なくとも1つがtrueの場合にtrueを返します。 両方が偽の場合、結果は偽です。 いくつかの条件のうち少なくとも一つが真である必要があるシナリオに最適です。 例えば、その人が会員であるかチケットを持っている場合に入場を許可する。

について

オペレーター:

  • 左オペランドを評価します。
  • 左オペランドが真であれば、全体の式は真です。
  • 左オペランドが偽の場合、右オペランドが評価されます。
  • どちらかのオペランドが真であれば、表現は真になります

    左オペランドがtrueである場合、右オペランドは評価されません。なぜなら、全体の式がtrueであることが保証されるからです。

class Program
{
   static void Main(string [] args)
   {
       bool isMember = true;
       bool hasTicket = false;
       bool canEnter = isMember 
 hasTicket;
       Console.WriteLine(canEnter); // Output: true
   }
}
class Program
{
   static void Main(string [] args)
   {
       bool isMember = true;
       bool hasTicket = false;
       bool canEnter = isMember 
 hasTicket;
       Console.WriteLine(canEnter); // Output: true
   }
}
Friend Class Program
   Shared Sub Main(ByVal args() As String)
	   Dim isMember As Boolean = True
	   Dim hasTicket As Boolean = False
	   Dim canEnter As Boolean = isMember hasTicket
	   Console.WriteLine(canEnter) ' Output: true
   End Sub
End Class
$vbLabelText   $csharpLabel

ここでは、isMemberがtrueであるため、hasTicketは評価されず、結果はtrueです。

論理NOT演算子(!)

論理NOT演算子(!)は、ブール式の値を反転させます。 オペランドが真であれば結果は偽となり、その逆も同様です。 一般的に条件を反転させるために使用されます。 例えば、機能が有効になっている場合、無効にするべきかを判断するためにNOT演算子を使用することがあります。

仕組みは次のとおりです:

  • オペランドを評価します。
  • オペランドが真の場合、結果は偽です。
  • オペランドがfalseの場合、結果はtrueです。
class Program
{
   static void Main(string [] args)
   {
       bool isLoggedOn = false;
       bool showLoginButton = !isLoggedOn;
       Console.WriteLine(showLoginButton); // Output: true
   }
}
class Program
{
   static void Main(string [] args)
   {
       bool isLoggedOn = false;
       bool showLoginButton = !isLoggedOn;
       Console.WriteLine(showLoginButton); // Output: true
   }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ここでは、isLoggedOnがfalseなので、論理NOT演算子はtrueを返します。

他のオペレーターとの結合

NOT演算子は、AND演算子およびOR演算子と共に使用して、より複雑な条件を作成することができます。

bool isWeekend = false;
bool hasVacation = true;
bool isWorkDay = !(isWeekend 
 hasVacation);
Console.WriteLine(isWorkDay); // Output: false
bool isWeekend = false;
bool hasVacation = true;
bool isWorkDay = !(isWeekend 
 hasVacation);
Console.WriteLine(isWorkDay); // Output: false
Dim isWeekend As Boolean = False
Dim hasVacation As Boolean = True
Dim isWorkDay As Boolean = Not (isWeekend hasVacation)
Console.WriteLine(isWorkDay) ' Output: false
$vbLabelText   $csharpLabel

論理XOR演算子 (^)

論理XOR演算子(^)は、2つのオペランドの値が異なる場合にtrueを返します。 両方が同じであれば、falseを返します。 この演算子は、2つの条件のうちどちらか一方が真であることを保証したいが、両方が真であることがないようにしたい場合に特に有効です。

class Program
{
   static void Main(string [] args)
   {
       bool hasPassword = true;
       bool hasSmartCard = false;
       bool canLogin = hasPassword ^ hasSmartCard;
       Console.WriteLine(canLogin); // Output: true
   }
}
class Program
{
   static void Main(string [] args)
   {
       bool hasPassword = true;
       bool hasSmartCard = false;
       bool canLogin = hasPassword ^ hasSmartCard;
       Console.WriteLine(canLogin); // Output: true
   }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

hasPasswordとhasSmartCardの値が異なるため、論理XORはtrueを返します。 両方が真であるか両方が偽である場合、それは偽を返します。

他の関連演算子

複合代入演算子

複合代入演算子は、算術演算と代入を組み合わせたものです。 それらは操作を実行し、結果を変数に代入するための省略記法です。 以下は複合代入演算子の種類です:

  • +=: 加算して代入
  • 減算して代入
  • *=: 乗算して代入
  • /=: 除算して代入
  • %=: 剰余と代入
  • &=: ビット単位のAND演算および代入
  • :ビットごとの OR と代入
  • ^=:ビット単位のXORと割り当て

    そして、これはアクションでの様子です:

int x = 5;
x += 3; // Equivalent to x = x + 3; x is now 8
int x = 5;
x += 3; // Equivalent to x = x + 3; x is now 8
Dim x As Integer = 5
x += 3 ' Equivalent to x = x + 3; x is now 8
$vbLabelText   $csharpLabel

算術演算子

算術演算子は、標準的な数学操作を実行します。 内容には、次のものが含まれます:

  • +: 加算
  • 減算
  • *: 掛け算
  • /: 割り算
  • %: モジュラス(除算の余り)

演算子の優先順位

演算子の優先順位は、式内で演算が実行される順序を定義します。 例えば、掛け算と割り算は足し算と引き算の前に行われます。

C#における演算子の優先順位の順序は次のとおりです:

  • 論理否定 (!)
  • 乗算 (*, /,%)
  • 加算(+, -)
  • リレーショナルおよび型テスト <, >, <=, >=, is, as
  • 等価(==, !=)
  • 論理積 (&&)
  • 論理 OR

    )

ビット演算子

ブール値に対して動作する論理演算子とは別に、いくつかのビット単位論理演算子が整数の2進数表現に対して動作します。 ビット単位の論理演算子の種類は次のとおりです:

  • &: ビットごとのAND
  • ビット単位のOR
  • ^: ビットごとのXOR
  • ~: ビットごとのNOT
  • <<: 左シフト
  • シフト右

    これらのビット単位演算子は、整数値内の個々のビットを操作することを可能にします。

Iron Suite:C&numのための強力なツールキット;

Iron Suite for C# Developmentは、C#プログラミングの機能を拡張するために特化されたライブラリのコレクションです。 この優れたツールのセットは、ドキュメント処理、データ処理、テキスト認識など、多岐にわたるタスクにおいて開発者を支援することができます。 それぞれの製品が論理演算子をどのように活用しているかを探ってみましょう。

IronPDF

IronPDFは、開発者がC#アプリケーション内でPDFドキュメントを作成、読み取り、編集、および変換することを可能にします。 特定の条件に基づいてPDFから特定の情報をフィルタリングし抽出する必要があるシナリオを考えてみてください。 論理演算子を使用してこれらの条件を定義することができ、プログラムが抽出または操作するデータに関して知的な判断を下すことが可能になります。

IronPDFがPDFドキュメントの取り扱いを強化する方法を発見する

IronXL

IronXLは、Microsoft Excelファイルの操作を簡略化し、C#でスプレッドシートを直接読み書きおよび操作できます。 データを処理しながら動的な条件を作成するために論理演算子を利用できます。 例えば、複数の条件を満たすレコードをフィルタリングするために論理AND演算子を使用したり、いくつかの条件を満たす行を選択するために論理OR演算子を使用したりする場合です。

IronXL を使用した Excel の利用について学ぶ

IronOCR

IronOCRは、C#アプリケーションが画像からテキストを認識および読み取ることを可能にする強力なツールです。 論理演算子は、抽出されたテキストの後処理に役立つことがあります。 抽出した情報を検証する必要があるユースケースを想像してください。 論理NOT、AND、OR演算子を使用して、データの正確性を確保するための複雑な検証ルールを作成することができます。

IronOCRが光学文字認識を可能にする方法をご覧ください

IronBarcode

IronBarcodeは、C#アプリケーション内でバーコードを生成、読み取り、認識する機能を追加します。 特定の条件に基づいてどの種類のバーコードを開発または読み取るかを決定したり、特定の論理ルールに従ってバーコードデータを検証したりするために、論理演算子を使用することができます。

IronBarcodeがバーコード操作を管理する方法を見つける

結論

論理演算子は新進のプログラマーにとって必須のスキルであり、このガイドはC#の演算子ができることのほんの一部をご紹介します。 Iron Suite for C# Development を使用すれば、論理演算子を実際のアプリケーションで使用する実用的な例を見ることができます。

C#のスキルを練習したい場合、Iron Suiteのすべての製品は開発環境において完全に無料で使用できます。 コーディングを始めたばかりの方も、既にC#のプロであっても、これらのツールはコーディングを次のレベルに引き上げるのに役立ちます。

チペゴ
ソフトウェアエンジニア
チペゴは優れた傾聴能力を持ち、それが顧客の問題を理解し、賢明な解決策を提供する助けとなっています。彼は情報技術の学士号を取得後、2023年にIron Softwareチームに加わりました。現在、彼はIronPDFとIronOCRの2つの製品に注力していますが、顧客をサポートする新しい方法を見つけるにつれて、他の製品に関する知識も日々成長しています。Iron Softwareでの協力的な生活を楽しんでおり、さまざまな経験を持つチームメンバーが集まり、効果的で革新的な解決策を提供することに貢献しています。チペゴがデスクを離れているときは、良い本を楽しんだり、サッカーをしていることが多いです。
< 以前
C# ラウンド(開発者向けの仕組み)
次へ >
C# ゲッター セッター (開発者向けの仕組み)