跳至頁尾內容
.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
    }
}
$vbLabelText   $csharpLabel

在這個範例中,即使 isAdult 是 true,但 hasBalance 是 false,因此結果是 false。

邏輯 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
    }
}
$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
    }
}
$vbLabelText   $csharpLabel

在此,由於 isLoggedOn 為 false,因此邏輯 NOT 運算符號會返回 true。

與其他運算符號結合

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
$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
    }
}
$vbLabelText   $csharpLabel

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

其他相關操作符

複合指定操作符

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

  • +=:新增和指定
  • -=: 減法和指定
  • *=:乘法和分配
  • /=:分割和分配
  • %=:模數和賦值
  • &=: 位元 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
$vbLabelText   $csharpLabel

算術運算符號

算術運算符號執行標準的數學運算。 這些工具包括

  • +:加法
  • -: 減法
  • *:乘法
  • /:分部
  • %:模數 (除法的餘數)

操作員優先級

運算符號的優先順序定義了在表達式中執行操作的順序。 例如,先執行乘法和除法,再執行加法和減法。

以下是 C# 中運算符號的優先順序:

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

Bitwise 運算符號

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

  • &: 位元 AND
  • |:雙向 OR
  • ^: 位元 XOR
  • ~: 位元 NOT
  • <<: Left Shift
  • >:右移

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

Iron Suite:C# 的強大工具包;

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

IronPDF。

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

瞭解 IronPDF 如何增強 PDF 文件處理

IronXL。

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

學習使用 IronXL.Excel 處理 Excel.

IronOCR。

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

瞭解 IronOCR 如何實現光學字元識別

IronBarcode。

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

瞭解 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 運算子有什麼不同?

邏輯與運算子 (&&) 僅當兩個運算元都為真時才傳回真,而邏輯或運算子 (||) 只要至少有一個運算元為真就傳回真。這些運算子有助於在 C# 中建立複雜的條件語句。

C# 中的邏輯非運算子如何影響布林表達式?

邏輯非運算子 (!) 用於反轉布林表達式的值。若條件為真,應用非運算子後,條件變成假;反之亦然。這對於反轉條件的結果非常有用。

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

是的,在 C# 中,邏輯運算子可以與複合賦值運算子結合使用,從而有效率地執行運算。像 +=、-= 等複合賦值運算子允許您一步完成算術運算並賦值。

運算子優先權如何影響 C# 中表達式的求值?

運算子優先權決定了表達式中運算的執行順序。在 C# 中,乘法和除法運算優先於加法和減法運算,而邏輯運算子則有其自身的優先權,這會影響複雜表達式的解析方式。

什麼是 XOR 運算子?在 C# 中何時會用到它?

C# 中的異或運算子 (^) 會在兩個運算元具有不同的布林值時傳回 true。它在需要兩個條件中恰好有一個為真的場景中特別有用,例如切換狀態。

開發人員如何使用 Iron Suite 增強 C# 文件處理能力?

開發人員可以利用 Iron Suite 套件,透過使用 IronPDF(用於處理 PDF 文件)、IronXL(用於處理 Excel 文件)和 IronOCR(用於文字識別)等工具來增強 C# 文件處理能力。這些工具與邏輯運算符集成,能夠有效率地處理資料。

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

Jacob Mellor 是 Iron Software 的首席技術官,也是一位富有遠見的工程師,率先開發了 C# PDF 技術。作為 Iron Software 核心程式碼庫的最初開發者,他自公司成立之初便參與塑造了其產品架構,並與執行長 Cameron Rimington 一起將其發展成為一家擁有 50 多名員工、服務於 NASA、特斯拉和全球政府機構的公司。

Jacob 於 1998 年至 2001 年在曼徹斯特大學獲得土木工程一級榮譽學士學位。 1999 年,他在倫敦創辦了自己的第一家軟體公司;2005 年,他創建了自己的第一個 .NET 元件。此後,他專注於解決微軟生態系統中的複雜問題。

他的旗艦產品 IronPDF 和 IronSuite .NET 庫在全球 NuGet 上的安裝量已超過 3000 萬次,其基礎程式碼持續為全球開發者工具提供支援。憑藉 25 年的商業經驗和 41 年的程式設計專長,Jacob 始終致力於推動企業級 C#、Java 和 Python PDF 技術的創新,同時指導下一代技術領導者。