
C# 邏輯運算符(開發者的工作原理)
理解邏輯運算子對於在程式設計中處理條件語句至關重要。 從XOR到算術運算,它們在確定給定條件的真值方面發揮著重要作用。
本指南將帶您通過C#中的邏輯運算子的基礎知識,包括布林值、運算子優先順序、邏輯否定等等。
什麼是邏輯運算子?
邏輯運算子,通常稱為邏輯運算,構成了程式設計中決策的核心。 它們操作布林表達式,對其進行評估以生成真假布林值,這取決於所提供的條件。 這些運算子在控制您的程式流程中發揮著關鍵作用,允許您根據特定標準執行特定的程式碼塊。
下面,我們將深入探討C#中的不同邏輯運算子,理解它們的功能並展示如何將邏輯運算子加入您的應用中以精確高效地執行邏輯運算。
Types of Logical Operators in C#
邏輯AND運算子(&&)
邏輯AND運算子(&&)結合兩個布林表達式,並在兩者均為真時返回真。 如果其中一個或兩個為假,則結果為假。 通常用於多條件場景中,所有條件必須滿足。 例如,驗證使用者是否年齡足夠並且有足夠餘額進行購買。
&& 運算子:
- 評估左操作數
- 如果左操作數為假,則整個表達式為假
- 如果左操作數為真,則評估右操作數
- 如果兩操作數均為真,則表達式為真
如果左操作數為假,則不評估右操作數,因為整個表達式保證為假。
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
}
}Module Program
Sub Main(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 Module在此範例中,即使hasBalance為假,所以結果為假。
邏輯OR運算子(||)
邏輯OR運算子(||) 結合兩個布林表達式,並在至少一個為真時返回真。 如果兩者均為假,則結果為假。 理想的情況是在多個條件中至少有一個必須為真。 例如,允許進入如果一個人是會員或有票。
|| 運算子:
- 評估左操作數
- 如果左操作數為真,則整個表達式為真
- 如果左操作數為假,則評估右操作數
- 如果任一操作數為真,則表達式為真
如果左操作數為真,則不評估右操作數,因為整個表達式保證為真。
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
}
}Module Program
Sub Main(args As String())
Dim isMember As Boolean = True
Dim hasTicket As Boolean = False
Dim canEnter As Boolean = isMember Or hasTicket
' Output the result to the console; expected output is true
Console.WriteLine(canEnter) ' Output: true
End Sub
End Module在這裡,由於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
}
}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在這裡,因為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: falseDim 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邏輯XOR運算子(^)
邏輯XOR運算子(^)在兩個運算數具有不同值時返回真。 如果兩者相同,則返回假。 當您想確保僅有兩個條件中的一個為真,而不是兩者都為真時,該運算子特別有用。
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
}
}Module Program
Sub Main(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 Module因為hasSmartCard的值不同,所以邏輯XOR返回真。 如果兩者都為真或兩者都為假,它將返回假。
其他相關運算子
複合賦值運算子
複合賦值運算子結合了算術與賦值。 它們是執行運算並將結果賦給變數的簡寫。 以下是一些複合賦值運算子的型別:
+=:加法並賦值-=:減法並賦值*=:乘法並賦值/=:除法並賦值%=:取餘並賦值&=:按位AND並賦值|=:按位OR並賦值^=:按位XOR並賦值
以下是它們的實際應用:
int x = 5;
x += 3; // Equivalent to x = x + 3; x is now 8Dim x As Integer = 5
x += 3 ' Equivalent to x = x + 3; x is now 8算術運算子
算術運算子執行標準數學運算。 它們包括:
+:加法-:減法*:乘法/:除法%:取餘(除法的餘數)
運算子優先順序
運算子優先順序定義了在表達式中運算的執行順序。 例如,乘法和除法在加法和減法之前執行。
以下是C#中的運算子優先順序:
- 邏輯NOT(!)
- 乘法性(*,/,%)
- 加法性(+,-)
- 關係和型別測試(<,>,<=,>=,is,as)
- 等式(==,!=)
- 邏輯AND(&&)
- 邏輯OR(||)
按位運算子
除了操作布林值的邏輯運算子外,一些按位邏輯運算子還操作整數的二進位表示。 按位邏輯運算子的型別有:
&:按位AND|:按位OR^:按位XOR~:按位NOT<<:左移位>>:右移位
這些按位運算子使您可以操控整數值中的單個位。
Iron Suite: A Powerful Toolkit for C#
C#開發的Iron Suite 是一套旨在擴展C#程式設計功能的程式庫集合。 這套卓越的工具可以幫助開發人員執行廣泛的任務,例如文件處理、資料處理和文字識別。 讓我們來看看每個產品如何利用邏輯運算子。
IronPDF
IronPDF使開發者能夠在C#應用中建立、讀取、編輯和轉換PDF文件。 考慮這樣一個場景,您必須根據某些條件過濾並提取PDF中的特定資訊。 可以使用邏輯運算子來定義這些條件,使程式能夠智能地決定提取或操控哪些資料。
IronXL
IronXL簡化了與Microsoft Excel文件的配合,允許您直接在C#中讀取、寫入和操控電子表格。 您可以利用邏輯運算子來建立動態條件來處理資料。 例如,使用邏輯AND運算子來過濾滿足多個條件的記錄,或使用邏輯OR運算子選擇滿足多個條件的行。
IronOCR
IronOCR是一個強大的工具,可以讓您的C#應用識別和讀取圖片中的文字。 邏輯運算子可以在提取文字後處理中發揮作用。 想像一個使用案例,您需要驗證提取的資訊。 使用邏輯NOT,AND,OR運算子,您可以建立複雜的驗證規則以確保資料的準確性。
IronBarcode
IronBarcode增加了在C#應用中生成,讀取和識別條碼的能力。 您可以使用邏輯運算子來決定根據特定條件開發或讀取何種型別的條碼,或根據特定的邏輯規則驗證條碼資料。
結論
邏輯運算子是任何新晉程式員必備的技能,本指南只是C#運算子能做的事情的冰山一角。 借助C#開發的Iron Suite,您可以看到使用邏輯運算子在實際應用中的一些實例。
如果您想練習C#技能,Iron Suite中的每一項產品在開發環境中都可以完全免費使用。 無論您是剛剛開始還是已經是一位C#專家,這些工具都可以幫助您的編碼更上一層樓。

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。
相關文章


