.NETヘルプ C# Logical Operators (開発者向けの仕組み) Curtis Chau 更新日:6月 22, 2025 Download IronPDF NuGet Download テキストの検索と置換 テキストと画像のスタンプ Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 論理演算子を理解することは、プログラミングで条件文を扱う際に不可欠です。 XORから算術演算まで、与えられた条件の真偽を判断する上で重要な役割を果たします。 このガイドでは、C# における論理演算子の基本、ブール値、演算子の優先順位、論理否定などの概念を一通り説明します。 論理演算子とは何ですか? 論理演算子は、一般的に論理操作として知られ、プログラミングの意思決定の核を形成します。 ブール式に作用し、それらを評価して真または偽のブール値を生成します。提供された条件に応じて、これが決まります。 これらの演算子は、プログラムの流れを制御する上で重要な役割を果たし、特定の基準に基づいて特定のコードブロックを実行できるようにします。 以下では、C#のさまざまな論理演算子を掘り下げ、それらの機能を理解し、論理演算子をどのようにアプリケーションに組み込んで、正確で効率的な論理操作を実行できるかを紹介します。 C#における論理演算子の種類 論理AND演算子(&&) 論理AND演算子(&&)は、2つのブール式を組み合わせ、両方が真の場合に真を返します。 どちらかまたは両方が偽の場合、結果は偽になります。 すべての条件を満たさなければならない複数条件のシナリオで一般的に使用されます。 例えば、ユーザーが十分な年齢で、購入するのに十分な残高があるかを検証する場合です。 &&演算子: 左オペランドを評価します 左オペランドが偽の場合、全体の式は偽になります 左オペランドが真の場合、右オペランドを評価します 両方のオペランドが真であれば、式は真になります 左オペランドが偽の場合、全体式が偽であることが保証されるため、右オペランドは評価されません。 class Program { static void Main(string[] args) { bool isAdult = true; bool hasBalance = false; bool canPurchase = isAdult && hasBalance; // Output the result to the console; expected output is false Console.WriteLine(canPurchase); // Output: false } } class Program { static void Main(string[] args) { bool isAdult = true; bool hasBalance = false; bool canPurchase = isAdult && hasBalance; // Output the result to the console; expected output is false Console.WriteLine(canPurchase); // Output: false } } Friend Class Program Shared Sub Main(ByVal args() As String) Dim isAdult As Boolean = True Dim hasBalance As Boolean = False Dim canPurchase As Boolean = isAdult AndAlso hasBalance ' Output the result to the console; expected output is false Console.WriteLine(canPurchase) ' Output: false End Sub End Class $vbLabelText $csharpLabel この例では、isAdultは真ですが、hasBalanceは偽なので、結果は偽です。 論理OR演算子( 論理OR演算子(||)は、2つのブール式を組み合わせ、少なくとも1つが真であれば真を返します。 両方が偽であれば、結果は偽になります。 いくつかの条件のうち少なくとも1つが真である必要があるシナリオに最適です。 例えば、メンバーまたはチケットを持っている場合に入場を許可します。 ||演算子: 左オペランドを評価します 左オペランドが真であれば、全体の式は真です 左オペランドが偽であれば、右オペランドを評価します どちらかのオペランドが真であれば、式は真です 左オペランドが真の場合、全体式が真であることが保証されるため、右オペランドは評価されません。 class Program { static void Main(string[] args) { bool isMember = true; bool hasTicket = false; bool canEnter = isMember || hasTicket; // Output the result to the console; expected output is true Console.WriteLine(canEnter); // Output: true } } class Program { static void Main(string[] args) { bool isMember = true; bool hasTicket = false; bool canEnter = isMember || hasTicket; // Output the result to the console; expected output is true 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 OrElse hasTicket ' Output the result to the console; expected output is true Console.WriteLine(canEnter) ' Output: true End Sub End Class $vbLabelText $csharpLabel ここでは、isMemberが真であるため、hasTicketは評価されず、結果は真です。 論理NOT演算子(!) 論理NOT演算子(!)は、ブール式の値を反転させます。 オペランドが真であれば結果は偽になり、その逆もまた然りです。 条件を反転するために一般的に使用されます。 たとえば、ある機能が有効になっている場合、その機能を無効にするべきかどうかを決定するためにNOT演算子を利用します。 以下のように動作します: オペランドを評価します。 オペランドが真であれば、結果は偽です。 オペランドが偽であれば、結果は真です。 class Program { static void Main(string[] args) { bool isLoggedOn = false; bool showLoginButton = !isLoggedOn; // Output the result to the console; expected output is true Console.WriteLine(showLoginButton); // Output: true } } class Program { static void Main(string[] args) { bool isLoggedOn = false; bool showLoginButton = !isLoggedOn; // Output the result to the console; expected output is true Console.WriteLine(showLoginButton); // Output: true } } Friend Class Program Shared Sub Main(ByVal args() As String) Dim isLoggedOn As Boolean = False Dim showLoginButton As Boolean = Not isLoggedOn ' Output the result to the console; expected output is true Console.WriteLine(showLoginButton) ' Output: true End Sub End Class $vbLabelText $csharpLabel ここでは、isLoggedOnが偽であるため、論理NOT演算子は真を返します。 他の演算子との組み合わせ NOT演算子はANDおよびOR演算子と組み合わせて、より複雑な条件を作成することができます。 bool isWeekend = false; bool hasVacation = true; bool isWorkDay = !(isWeekend || hasVacation); // Output the result to the console; expected output is false Console.WriteLine(isWorkDay); // Output: false bool isWeekend = false; bool hasVacation = true; bool isWorkDay = !(isWeekend || hasVacation); // Output the result to the console; expected output is false Console.WriteLine(isWorkDay); // Output: false Dim isWeekend As Boolean = False Dim hasVacation As Boolean = True Dim isWorkDay As Boolean = Not (isWeekend OrElse hasVacation) ' Output the result to the console; expected output is false Console.WriteLine(isWorkDay) ' Output: false $vbLabelText $csharpLabel 論理XOR演算子(^) 論理XOR演算子(^)は、2つのオペランドが異なる値を持っている場合に真を返します。 両方が同じであれば偽を返します。 この演算子は、2つの条件のうち正確に1つが真であることを保証したい場合に特に便利です。 class Program { static void Main(string[] args) { bool hasPassword = true; bool hasSmartCard = false; bool canLogin = hasPassword ^ hasSmartCard; // Output the result to the console; expected output is true Console.WriteLine(canLogin); // Output: true } } class Program { static void Main(string[] args) { bool hasPassword = true; bool hasSmartCard = false; bool canLogin = hasPassword ^ hasSmartCard; // Output the result to the console; expected output is true Console.WriteLine(canLogin); // Output: true } } Friend Class Program Shared Sub Main(ByVal args() As String) Dim hasPassword As Boolean = True Dim hasSmartCard As Boolean = False Dim canLogin As Boolean = hasPassword Xor hasSmartCard ' Output the result to the console; expected output is true Console.WriteLine(canLogin) ' Output: true End Sub End Class $vbLabelText $csharpLabel hasPasswordとhasSmartCardの値が異なるため、論理XORは真を返します。 両方が真または両方が偽であれば、偽を返します。 その他の関連する演算子 複合代入演算子 複合代入演算子は算術と代入を組み合わせます。 操作を実行し、その結果を変数に代入するための省略形です。 複合代入演算子の種類は以下の通りです: +=: 加算して代入 -=: 減算して代入 *=: 乗算して代入 /=: 除算して代入 %=: 剰余を求めて代入 &=: ビット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#における演算子の優先順位は以下の通りです: 論理NOT(!) 乗法 (*、/、%) 加法 (+、-) 比較と型チェック (<, >, <=, >=, is, as) 等価 (==、!=) 論理AND (&&) 論理OR (||) ビット演算子 ブール値に基づく論理演算子とは別に、ビット単位の論理演算子は整数のバイナリ表現で動作します。 ビット単位の論理演算子の種類は以下の通りです: &: ビットAND |: ビットOR ^: ビットXOR ~: ビットNOT <<: 左シフト >>: 右シフト ビット演算子は、整数値内の個々のビットを操作することを可能にします。 Iron Suite: C#向けの強力なツールキット 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#のプロであろうと、これらのツールはコーディングを次のレベルに引き上げるのに役立ちます。 よくある質問 C# における論理演算子とは何であり、どのように使用されますか? C# の論理演算子は、プログラミングにおいて意思決定を行うためのブール式を評価するために使用されます。これには AND (&&)、OR (||)、NOT (!)、XOR (^) が含まれます。これらの演算子は、コード内の条件の真偽を判定し、プログラムの流れを効果的に制御するのに役立ちます。 C# で PDF ドキュメントを処理するために論理演算子をどのように使用できますか? IronPDF を使用すると、PDF ファイルから特定のデータを抽出する条件を論理演算子で定義できます。例えば、AND (&&) 演算子を使用して、処理またはデータ抽出を行う前に複数の条件が満たされていることを確認することができます。 C# の論理 AND 演算子と論理 OR 演算子の違いは何ですか? 論理 AND 演算子 (&&) は、両方のオペランドが真である場合のみ真を返しますが、論理 OR 演算子 (||) は少なくとも一つのオペランドが真である場合に真を返します。これらの演算子は、C# で複雑な条件文を構成するのに役立ちます。 論理 NOT 演算子は C# のブール式にどのように影響しますか? 論理 NOT 演算子 (!) は、ブール式の値を反転させます。条件が真の場合、NOT 演算子を適用すると偽になり、その逆もまた然りです。これは、条件の結果を反転させるのに便利です。 論理演算子は C# で複合代入演算子と組み合わせることができますか? はい、論理演算子は C# の複合代入演算子と組み合わせて効率的に操作を行うことができます。+=、-= などの複合代入演算子を使用すると、算術演算を行い、結果を一度に割り当てることができます。 演算子の優先順位は C# の式の評価にどのように影響しますか? 演算子の優先順位は、式内の操作が実行される順序を決定します。C# では、乗算と除算が加算と減算の前に評価され、論理演算子にはそれぞれの優先順位レベルがあり、複雑な式が解決される方法に影響を与えます。 XOR 演算子とは何であり、C# ではいつ使用しますか? C# の XOR 演算子 (^) は、2 つのオペランドが異なるブール値を持つ場合に真を返します。これは、2 つの条件のうちどちらか一方のみが真である必要があるシナリオ、たとえば状態をトグルする場合に特に便利です。 開発者は Iron Suite を使用して C# ドキュメント処理をどのように強化できますか? 開発者は、IronPDF を PDF に、IronXL を Excel ファイルに、IronOCR をテキスト認識に利用することで Iron Suite の機能を活用し、C# ドキュメント処理を強化できます。これらのツールは論理演算子と統合され、データを効率的に処理します。 Curtis Chau 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 更新日 9月 4, 2025 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む 更新日 9月 4, 2025 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む 更新日 8月 5, 2025 C# Switch Pattern Matching(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む C# Round (開発者向けの仕組み)C# Getter Setter (開発者向け...
更新日 9月 4, 2025 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む
更新日 9月 4, 2025 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む
更新日 8月 5, 2025 C# Switch Pattern Matching(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む