.NET ヘルプ

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

更新済み 8月 15, 2024
共有:

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

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

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

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

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

C#の論理演算子の種類

論理積演算子 (&&)

論理積演算子 (&&) 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
VB   C#

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

論理 OR 演算子 (

)

論理 OR 演算子 (

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

について

オペレーター:

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

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

class Program
{
   static void Main(string [] args)
   {
       bool isMember = true;
       bool hasTicket = false;
       bool canEnter = isMemberhasTicket;
       Console.WriteLine(canEnter); // Output: true
   }
}
class Program
{
   static void Main(string [] args)
   {
       bool isMember = true;
       bool hasTicket = false;
       bool canEnter = isMemberhasTicket;
       Console.WriteLine(canEnter); // Output: true
   }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

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

論理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
VB   C#

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

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

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

bool isWeekend = false;
bool hasVacation = true;
bool isWorkDay = !(isWeekendhasVacation);
Console.WriteLine(isWorkDay); // Output: false
bool isWeekend = false;
bool hasVacation = true;
bool isWorkDay = !(isWeekendhasVacation);
Console.WriteLine(isWorkDay); // Output: false
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

論理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
VB   C#

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
VB   C#

算術演算子

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

  • +: 加算
  • 減算
  • *: 掛け算
  • /: 割り算

  • %: 剰余 (除算の余り)

演算子の優先順位

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

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

  • 論理NOT (!)
  • 乗算的 (*, /, %)
  • 添加 (+, -)
  • 関係および型テスト <, >, <=, >=, is, as)
  • 平等 (==, !=)
  • 論理AND (&&)

  • 論理OR (

    )

ビット演算子

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

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

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

Iron Suite:C# 用の強力なツールキット

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

IronPDF (アイアンPDF)

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

IronPDFについて詳しく知る.

IronXL

IronXL は、.NET、Python、および他のプログラミング言語で Excel 形式の読み取り、書き込み、編集を可能にするライブラリです。ユーザーは、Microsoft Excel を使わずに、スプレッドシートをプログラムで管理することができます。主要な機能には、Excel ファイルの作成、既存ファイルの読み込み、セルの書き換え、グリッドデータの操作などが含まれます。データ分析、自動化、レポート生成のために最適なツールです。

IronXL の特長は、使いやすさと柔軟性にあります。どのレベルのプログラマーでも、数行のコードで Excel 操作を実行できます。開発者は、RBGA カラー、フォントスタイル、ボーダースタイルなど、ビジュアル要素のカスタマイズも簡単に行えます。

以下のプラットフォームで使用可能です:

  • IronXL for .NET
  • IronXL for Python

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

IronXLについて詳しくはこちら.

IronOCR

アイアンオーシーアール (IronOCR) は、高精度の光学文字認識 (Optical Character Recognition, OCR) ライブラリです。以下はその主な機能と利点です。

  • 高精度: IronOCR は、画像やPDFから文字情報を高精度で抽出します。複雑なフォントや手書き文字にも対応しています。
  • 多言語対応: IronOCR は、多数の言語に対応しており、グローバルなプロジェクトに最適です。
  • 簡単な統合: .NET アプリケーションに簡単に統合できるため、開発者の手間を大幅に削減します。
  • 豊富なフォーマットサポート: PDF、TIFF、JPG、PNG など、さまざまなファイル形式をサポートしています。
  • カスタマイズ可能な OCR 設定: パフォーマンスや精度を最適化するために、様々な設定を調整できます。

サポートされている開発プラットフォームには、.NET Framework、.NET Core、Xamarin などがあります。 アイアンオーシーアール (IronOCR) は、開発者が迅速かつ効率的にOCR機能を統合するための強力なツールです。

さらに詳しい情報やデモ版のダウンロードは、公式ウェブサイト https://ironsoftware.com からご覧いただけます。

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

IronOCRの詳細についてはこちらをご覧ください.

IronBarcode

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

IronBarcodeについてもっと詳しく知る.

結論

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

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

< 以前
C# ラウンド(開発者向けの仕組み)
次へ >
C# ゲッター セッター (開発者向けの仕組み)

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 10,659,073 View Licenses >