跳過到頁腳內容
.NET幫助

C# 邏輯運算符(開發者的工作原理)

在程式設計中使用條件語句時,瞭解邏輯運算符號是非常重要的。 從 XOR 到算術運算,它們在決定給定條件的真值時扮演著重要的角色。

本指南將引導您了解 C# 中邏輯運算符的基本知識,包括布林值、運算符優先級、邏輯否定等概念。

什麼是邏輯運算符號?

邏輯運算符號通常稱為邏輯運算,是程式設計中決策的核心。 這些工具會對布林表達式進行操作,根據提供的條件,評估這些表達式以產生真或假的布林值。 這些運算符號在控制程式流程方面扮演重要角色,可讓您根據特定條件執行特定的程式碼區塊。

以下,我們將深入介紹 C# 中不同的邏輯運算符號,瞭解它們的功能,並展示如何將邏輯運算符號納入您的應用程式,以精確且有效率的方式執行邏輯運算。

C# 中邏輯運算符號的類型

邏輯 AND 運算符號 (&&)

邏輯 AND 運算符號 (&&) 結合兩個布林表達式,若兩者皆為真,則返回 true。 如果其中一個或兩個都是假的,結果就是假的。 常用於必須滿足所有條件的多條件情境。 例如,驗證使用者的年齡和餘額是否足以購買。

&& 運算子:

  • 評估左操作數
  • 如果左操作項為 false,則整個表達式為 false
  • 如果左操作項為真,則評估右操作項
  • 如果兩個操作數都為真,則表達式為真

如果左操作項為 false,則不評估右操作項,因為整個表達式保證為 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
    }
}
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
    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 運算符 (||) 結合兩個布林表達式,如果至少有一個為真,則返回 true。 如果兩者都是假的,結果就是假的。 最適合用於幾個條件中至少有一個必須為真的情況。 例如,如果某人是會員或有票,就允許進入。

|| 操作員:

  • 評估左操作數
  • 如果左操作項為真,則整個表達式為真
  • 如果左操作項為 false,則評估右操作項
  • 如果任一操作數為真,則表達式為真

如果左操作項為真,則不評估右操作項,因為整個表達式保證為真。

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
    }
}
Option Strict On



Module Program
    Sub Main(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 Module
$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
    }
}
Option Strict On



Module Program
    Sub Main(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 Module
$vbLabelText   $csharpLabel

這裡,由於 isLoggedOn 為假,邏輯非運算子傳回真。

與其他運算符號結合

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
Option Strict On



Dim isWeekend As Boolean = False
Dim hasVacation As Boolean = True
Dim isWorkDay As Boolean = Not (isWeekend Or hasVacation)

' Output the result to the console; expected output is false
Console.WriteLine(isWorkDay) ' Output: false
$vbLabelText   $csharpLabel

邏輯 XOR 運算符號 (^)

如果兩個操作數具有不同的值,邏輯 XOR 運算符號 (^) 會返回 true。 如果兩者相同,則返回 false。 當您想要確保兩個條件中的一個為真,而不是兩個都為真時,這個運算符號特別有用。

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
    }
}
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

由於 hasPasswordhasSmartCard 的值不同,邏輯 XOR 傳回為真。 如果兩者皆為真或兩者皆為假,則會回傳 false。

其他相關運算符號

複合指定運算符號

複合賦值運算符號結合了算術與賦值。 它們是執行操作並將結果指定給變數的速記。 以下是一些複合賦值運算符號的類型:

  • +=: 新增與分配
  • -=: 減法與賦值 `=`: 乘法與賦值
  • /=: 除法與賦值
  • %=: 取模與賦值
  • &=: 位元與賦值
  • |=:位元 OR 和指定
  • ^=: 按位異或賦值

在這裡,他們正在運作中:

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# 中運算符號的優先順序:

1.邏輯 NOT (!) 2.乘法 (*, /, %) 3.加法 (+, -) 4.關聯性和類型測試 (<, >, <=, >=, is, as) 5.等式 (==, !=) 6.邏輯 AND (&&) 7.邏輯 OR (||)

位元運算符號

除了用於布林值的邏輯運算符之外,有些位元邏輯運算符也用於整數的二進位表示。 位元邏輯運算符的類型有

  • &: 位元與
  • |:雙向 OR
  • ^: 位元異或
  • ~: 位元非
  • <<: 左移
  • >>: 右移

這些位元運算符可讓您操作整數值中的個別位元。

Iron Suite:C# 開發人員的強大工具套件

[Iron Suite for C# Development](https://ironsoftware.com/suite/) 是一套專為擴充 C# 程式設計功能而量身打造的函式庫。 這套非凡的工具可以協助開發人員執行各種任務,例如文件處理、資料處理和文字辨識。 讓我們來探討每個產品如何利用邏輯運算符號。

IronPDF。

IronPDF 可讓開發人員在 C# 應用程式中建立、閱讀、編輯和轉換 PDF 文件。 考慮一種情況:您必須根據特定條件從 PDF 中過濾並提取特定資訊。 邏輯運算符號可以用來定義這些條件,讓程式能夠智慧地決定要擷取或處理哪些資料。

[瞭解 IronPDF 如何增強 PDF 文件處理](/)。

IronXL。

IronXL.Excel 簡化了 Microsoft Excel 檔案的工作,讓您可以直接在 C# 中讀取、寫入和處理試算表。 在處理資料時,您可以利用邏輯運算符來建立動態條件。 例如,使用邏輯 AND 運算子過濾符合多個條件的記錄,或使用邏輯 OR 運算子選擇符合多個條件的行。

[學習使用 IronXL.Excel 處理 Excel](https://ironsoftware.com/csharp/excel/).

IronOCR。

IronOCR 是一款強大的工具,能讓您的 C# 應用程式從影像中辨識並讀取文字。 邏輯運算符號可在擷取文字的後處理過程中發揮作用。 想像一下您需要驗證所擷取的資訊的使用個案。 使用邏輯 NOT、AND、OR 運算符號,您可以建立複雜的驗證規則,以確保資料的正確性。

[瞭解 IronOCR 如何實現光學字元識別](https://ironsoftware.com/csharp/ocr/)。

IronBarcode。

IronBarcode 增加了在 C# 應用程式中產生、讀取和辨識條碼的能力。 您可以使用邏輯運算符號根據特定的條件來決定要開發或讀取何種類型的 BarCode,或是根據特定的邏輯規則來驗證 BarCode 資料。

[瞭解 IronBarcode 如何管理條碼作業](https://ironsoftware.com/csharp/barcode/)。

結論

邏輯運算符號是任何新進程式設計師的必備技能,本指南只是介紹 C# 運算符號的功能。 透過 [Iron Suite for C# Development](https://ironsoftware.com/suite/),您可以看到一些在實際應用中使用邏輯運算符的實例

如果您想要練習 C# 技巧,Iron Suite 的每項產品都可以在開發環境中完全免費使用。 無論您是剛剛入門或是已經是 C# 的專家,這些工具都能讓您的編碼更上一層樓。

常見問題解答

什麼是 C# 的邏輯運算符,它們如何被使用?

C# 中的邏輯運算符用於評估布林表達式以在程式設計中做出決策。包括 AND (&&)、OR (||)、NOT (!) 和 XOR (^)。這些運算符幫助確定程式碼中條件的真實性,從而有效控制程式流程。

如何使用邏輯運算符處理 C# 中的 PDF 文檔?

使用 IronPDF,邏輯運算符可以定義從 PDF 文件中提取特定數據的條件。例如,您可以使用 AND (&&) 運算符確保在處理或提取數據之前滿足多個條件。

C# 中的邏輯 AND 和邏輯 OR 運算符有什麼區別?

邏輯 AND 運算符 (&&) 只有在兩個操作數都為真時才返回真,而邏輯 OR 運算符 (||) 則是在至少有一個操作數為真時返回真。這些運算符有助於構建複雜的條件語句。

IronPDF 上的文章 'C# 邏輯運算符(開發者運作方式)' 提供了一個關於理解和應用 C# 程式設計中的邏輯運算符的指南。邏輯運算符(AND (&&)、OR (||)、NOT (!)、XOR (^))在編碼的決策過程中是基本的,因為它們評估布林表達式以確定條件的真實性...

邏輯 NOT 運算符 (!) 反轉布林表達式的值。如果條件為真,則應用 NOT 運算符將其變為假,反之亦然。這對於反轉條件結果非常有用。

邏輯運算符可以與 C# 的複合賦值運算符結合使用嗎?

是的,邏輯運算符可以與 C# 的複合賦值運算符結合使用,以高效地執行操作。複合賦值運算符如 +=、-= 等允許您在一個步驟中執行算術操作並分配結果。

運算符優先級如何影響 C# 表達式的評估?

運算符優先級決定表達式中操作執行的順序。在 C# 中,乘法和除法比加法和減法先進行評估,而邏輯運算符具有其自己的優先級別,這會影響複雜表達式如何解決。

什麼是 XOR 運算符,何時在 C# 中使用?

C# 中的 XOR 運算符 (^) 在兩個操作數具有不同布林值時返回真。它特別適合需要兩個條件中只有一個為真的情況,如切換狀態。

開發者如何利用 Iron Suite 增強 C# 的文檔處理能力?

開發者可利用 Iron Suite 增強 C# 的文檔處理能力,使用工具如 IronPDF 處理 PDF、IronXL 處理 Excel 文件以及 IronOCR 進行文本識別。這些工具可與邏輯運算符整合,以高效處理數據。

Jacob Mellor, Team Iron 首席技術官
首席技術官

Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。

Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。

他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我