Przejdź do treści stopki
POMOC .NET

Operatory logiczne w języku C# (jak działają dla programistów)

Zrozumienie operatorów logicznych jest niezbędne przy pracy z instrukcjami warunkowymi w programowaniu. Od XOR do operacji arytmetycznych, odgrywają one kluczową rolę w ustalaniu wartości logicznej danych warunków.

Ten przewodnik przeprowadzi Cię przez podstawy operatorów logicznych w języku C#, w tym takie pojęcia jak wartości logiczne, kolejność operatorów, negacja logiczna i wiele innych.

Czym są operatory logiczne?

Operatory logiczne, powszechnie znane jako operacje logiczne, tworzą rdzeń podejmowania decyzji w programowaniu. Działają na wyrażeniach boolowskich, oceniając je, aby wyprodukować wartość logiczną prawdy lub fałszu, w zależności od podanych warunków. Te operatory odgrywają kluczową rolę w kontrolowaniu przepływu programu, pozwalając na uruchamianie określonych bloków kodu na podstawie pewnych kryteriów.

Poniżej zagłębimy się w różne operatory logiczne w C#, zrozumienie ich funkcji oraz przedstawienie sposobu, w jaki można włączyć operatory logiczne do swoich aplikacji, aby wykonywać operacje logiczne z precyzją i wydajnością.

Rodzaje operatorów logicznych w C

Operator logiczny AND (&&)

Operator logiczny AND (&&) łączy dwa wyrażenia boolowskie i zwraca prawdę, jeśli obydwa są prawdziwe. Jeśli któreś z nich lub oba są fałszywe, wynik jest fałszywy. Powszechnie używany w scenariuszach wielokondycyjnych, gdzie wszystkie warunki muszą być spełnione. Na przykład, sprawdzając, czy użytkownik jest wystarczająco stary i ma wystarczający stan konta, aby dokonać zakupu.

Operator &&:

  • Ocena lewego operandu
  • Jeśli lewy operand jest fałszywy, całe wyrażenie jest fałszywe
  • Jeśli lewy operand jest prawdziwy, oceniany jest prawy operand
  • Wyrażenie jest prawdziwe, jeśli oba operandy są prawdziwe

Jeśli lewy operand jest fałszywy, prawy operand nie jest oceniany, ponieważ całe wyrażenie jest z góry fałszywe.

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

W tym przykładzie, mimo że isAdult jest prawdziwe, hasBalance jest fałszywe, więc wynik jest fałszywy.

Operator logiczny OR (

Operator logiczny OR (||) łączy dwa wyrażenia boolowskie i zwraca prawdę, jeśli co najmniej jedno z nich jest prawdziwe. Jeśli oba są fałszywe, wynik jest fałszywy. Idealne do scenariuszy, w których co najmniej jeden z kilku warunków musi być prawdziwy. Na przykład, pozwalając na wstęp, jeśli osoba jest członkiem lub ma bilet.

|| operator:

  • Ocena lewego operandu
  • Jeśli lewy operand jest prawdziwy, całe wyrażenie jest prawdziwe
  • Jeśli lewy operand jest fałszywy, oceniany jest prawy operand
  • Wyrażenie jest prawdziwe, jeśli którykolwiek z operandów jest prawdziwy

Jeśli lewy operand jest prawdziwy, prawy operand nie jest oceniany, ponieważ całe wyrażenie jest z góry prawdziwe.

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

Tutaj, ponieważ isMember jest prawdziwe, hasTicket nie jest nawet oceniane, a wynik jest prawdziwy.

Operator logiczny NOT (!)

Operator logiczny NOT (!) odwraca wartość wyrażenia boolowskiego. Jeśli operand jest prawdziwy, wynik jest fałszywy, i odwrotnie. Powszechnie używany do odwrotności warunku. Na przykład, jeśli funkcja jest włączona, można użyć operatora NOT, aby ustalić, czy powinna być wyłączona.

Oto jak to działa:

  • Ocena operandu.
  • Jeśli operand jest prawdziwy, wynik jest fałszywy.
  • Jeśli operand jest fałszywy, wynik jest prawdziwy.
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

Tutaj, ponieważ isLoggedOn jest fałszywe, operator logiczny NOT zwraca prawdę.

Łączenie z innymi operatorami

Operator NOT może być używany wraz z operatorami AND i OR do tworzenia bardziej skomplikowanych warunków.

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

Operator logiczny XOR (^)

Operator logiczny XOR (^) zwraca prawdę wtedy, gdy dwa operandy mają różne wartości. Jeśli oba są takie same, zwraca fałsz. Ten operator jest szczególnie przydatny, gdy chcesz upewnić się, że dokładnie jeden z dwóch warunków jest prawdziwy, ale nie oba.

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

Ponieważ wartości hasPassword i hasSmartCard są różne, operator logiczny XOR zwraca prawdę. Gdyby oba były prawdziwe lub oba były fałszywe, zwróciłby fałsz.

Inne powiązane operatory

Operator przypisania złożonego

Operator przypisania złożonego łączy arytmetykę z przypisaniem. Są to skróty do wykonywania operacji i przypisywania wyniku do zmiennej. Oto niektóre typy operatorów przypisania złożonego:

  • +=: Dodaj i przypisz
  • -=: Odejmij i przypisz
  • *=: Pomnóż i przypisz
  • /=: Podziel i przypisz
  • %=: Modulus i przypisz
  • &=: Bitowy AND i przypisz
  • |=: Bitowy OR i przypisz
  • ^=: Bitowy XOR i przypisz

A oto, jak działają w praktyce:

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

Operatory arytmetyczne

Operatory arytmetyczne wykonują standardowe operacje matematyczne. Obejmują one:

  • +: Dodawanie
  • -: Odejmowanie
  • *: Mnożenie
  • /: Dzielenie
  • %: Modulus (reszta z dzielenia)

Kolejność operatorów

Kolejność operatorów definiuje kolejność, w jakiej operacje są wykonywane w wyrażeniu. Na przykład, mnożenie i dzielenie są wykonywane przed dodawaniem i odejmowaniem.

Oto kolejność priorytetu operatorów w C#:

  1. Operator logiczny NOT (!)
  2. Operator mnożenia (*, /, %)
  3. Operator dodawania i odejmowania (+, -)
  4. Operator relacyjny i testu typu (<, >, <=, >=, is, as)
  5. Operator równości (==, !=)
  6. Operator logiczny AND (&&)
  7. Operator logiczny OR (||)

Operatory bitowe

Oprócz operatorów logicznych, które działają na wartościach boolowskich, niektóre operatory logiczne bitowe działają na binarnej reprezentacji liczb całkowitych. Rodzaje operatorów logicznych bitowych to:

  • &: Bitowy AND
  • |: Bitowy OR
  • ^: Bitowy XOR
  • ~: Bitowy NOT
  • <<: Przesunięcie w lewo
  • >>: Przesunięcie w prawo

Te operatory bitowe umożliwiają manipulację pojedynczymi bitami w wartości liczby całkowitej.

Iron Suite: Potężny zestaw narzędzi dla C

Iron Suite for C# Development to zbiór bibliotek zaprojektowany z myślą o rozszerzeniu funkcjonalności programowania w C#. To znakomity zestaw narzędzi może pomóc deweloperom w szerokim zakresie zadań, takich jak przetwarzanie dokumentów, obsługa danych i rozpoznawanie tekstu. Przyjrzyjmy się, jak każdy produkt korzysta z operatorów logicznych.

IronPDF

IronPDF umożliwia deweloperom tworzenie, czytanie, edytowanie i konwertowanie dokumentów PDF w ramach aplikacji C#. Rozważmy scenariusz, w którym należy przefiltrować i wydobyć określone informacje z PDF na podstawie pewnych warunków. Operatory logiczne można użyć do zdefiniowania tych warunków, umożliwiając programowi podejmowanie inteligentnych decyzji na temat tego, jakie dane wydobywać lub manipulować.

Odkryj, jak IronPDF ułatwia obsługę dokumentów PDF.

IronXL

IronXL upraszcza pracę z plikami Microsoft Excel, umożliwiając odczyt, zapis i manipulację arkuszami kalkulacyjnymi bezpośrednio w C#. Możesz wykorzystać operatory logiczne do tworzenia dynamicznych warunków podczas przetwarzania danych. Na przykład, używając operatora logicznego AND do filtrowania rekordów spełniających wiele kryteriów lub operatora logicznego OR do wybierania wierszy spełniających kilka warunków.

Dowiedz się, jak pracować z Excel przy użyciu IronXL.

IronOCR

IronOCR to potężne narzędzie, które umożliwia aplikacji C# rozpoznawanie i odczytywanie tekstu z obrazów. Operatory logiczne mogą odegrać rolę w post-processingu wyodrębnionego tekstu. Wyobraź sobie przypadek użycia, w którym musisz zweryfikować wyodrębnione informacje. Używając operatorów logicznych NOT, AND, OR, możesz tworzyć złożone zasady weryfikacji, aby zapewnić dokładność danych.

Zobacz, jak IronOCR umożliwia rozpoznawanie znaków optycznych.

IronBarcode

IronBarcode dodaje możliwość generowania, odczytywania i rozpoznawania kodów kreskowych w ramach aplikacji C#. Operatory logiczne mogą być używane do określenia, jaki typ kodu kreskowego rozwijać lub odczytywać na podstawie określonych warunków lub do weryfikacji danych kodu kreskowego zgodnie z pewnymi zasadami logicznymi.

Dowiedz się, jak IronBarcode zarządza operacjami kodu kreskowego.

Wnioski

Operatory logiczne są niezbędną umiejętnością dla każdego początkującego programisty, a ten przewodnik to tylko wstęp do tego, co mogą zdziałać operatory C#. Dzięki Iron Suite for C# Development możesz zobaczyć praktyczne przykłady użycia operatorów logicznych w rzeczywistych aplikacjach.

Jeśli chcesz poćwiczyć swoje umiejętności C#, każdy produkt w Iron Suite jest całkowicie darmowy do użycia w środowisku deweloperskim. Niezależnie od tego, czy dopiero zaczynasz, czy już jesteś profesjonalistą w C#, te narzędzia mogą pomóc wynieść twoje kodowanie na wyższy poziom.

Często Zadawane Pytania

Czym są operatory logiczne w C# i jak są używane?

Operatory logiczne w C# służą do oceny wyrażeń boolowskich w celu podejmowania decyzji w programowaniu. Należą do nich AND (&&), OR (||), NOT (!), oraz XOR (^). Operatory te pomagają określać prawdziwość warunków w kodzie, umożliwiając skuteczne sterowanie przepływem programu.

Jak można używać operatorów logicznych do przetwarzania dokumentów PDF w C#?

Przy użyciu IronPDF, operatory logiczne mogą definiować warunki do wyodrębniania konkretnych danych z plików PDF. Na przykład, można użyć operatora AND (&&), aby upewnić się, że wiele warunków jest spełnionych zanim przetworzy się lub wyodrębni dane.

Jaka jest różnica między operatorem logicznym AND i OR w C#?

Operator logiczny AND (&&) zwraca prawdę tylko wtedy, gdy oba operandy są prawdziwe, podczas gdy operator logiczny OR (||) zwraca prawdę, jeśli przynajmniej jeden operand jest prawdziwy. Operatory te pomagają w tworzeniu złożonych instrukcji warunkowych w C#.

Jak operator logiczny NOT wpływa na wyrażenia boolowskie w C#?

Operator logiczny NOT (!) odwraca wartość wyrażenia boolowskiego. Jeśli warunek jest prawdziwy, zastosowanie operatora NOT spowoduje jego fałszywość i odwrotnie. Jest to przydatne do odwracania wyniku warunku.

Czy operatory logiczne mogą być łączone z operatorami przypisania złożonego w C#?

Tak, operatory logiczne mogą być łączone z operatorami przypisania złożonego w C# w celu efektywnego wykonywania operacji. Operatory przypisania złożonego, takie jak +=, -= i inne, pozwalają wykonać operacje arytmetyczne i przypisać wynik w jednym kroku.

Jak priorytet operatorów wpływa na ocenę wyrażeń w C#?

Priorytet operatorów określa kolejność, w jakiej wykonywane są operacje w wyrażeniu. W C#, mnożenie i dzielenie są oceniane przed dodawaniem i odejmowaniem, a operatory logiczne mają swoje własne poziomy priorytetów, które wpływają na to, jak rozwiązywane są złożone wyrażenia.

Czym jest operator XOR i kiedy się go używa w C#?

Operator XOR (^) w C# zwraca prawdę, jeśli dwa operandy mają różne wartości boolowskie. Jest szczególnie przydatny w scenariuszach, gdzie potrzebna jest dokładnie jedna z dwóch warunków do spełnienia, na przykład przełączanie stanów.

Jak programiści mogą ulepszyć przetwarzanie dokumentów C# za pomocą Iron Suite?

Programiści mogą wykorzystać Iron Suite do ulepszania przetwarzania dokumentów C# poprzez korzystanie z narzędzi takich jak IronPDF do PDFów, IronXL do plików Excel, oraz IronOCR do rozpoznawania tekstu. Narzędzia te integrują się z operatorami logicznymi, aby efektywnie zarządzać danymi.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczą...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie