Instrukcja Switch Case w C#
[[academy-video-youtube({"vid": "ohsfmlfuSxA", "start_time": "0", "title": "C# Switch Case", "creator": "Layla Porter", "length": "20m 21s"})]]
Instrukcja switch w C# to potężny mechanizm sterowania przepływem, który pozwala programistom wykonywać jeden blok kodu spośród wielu na podstawie wartości wyrażenia. Jest szczególnie przydatna w sytuacjach, gdy należy sprawdzić wiele warunków względem jednej zmiennej. Operatory mogą być używane w ramach przypadków switch do wykonywania różnych działań na wyrażeniach dopasowania, takich jak porównania i sprawdzanie logiczne.
Layla Porter, w swoim filmie "C# for Beginners part 4 - Operators and Switches", zagłębia się w podstawowe koncepcje programowania w C#, skupiając się na operatorach i instrukcjach switch case. Ten artykuł, zainspirowany jej filmem, rozłoży jej wyjaśnienia i dostarczy fragmenty kodu z jej filmu, aby zrozumieć przypadki switch i operatory.
Wprowadzenie do operatorów
Operatory w C# są kluczowe do manipulowania danymi, porównywania wartości i podejmowania decyzji na podstawie wartości przypadków i porównań. Layla zaczyna od wyjaśnienia różnych typów operatorów: arytmetyczne, porównawcze i logiczne.
Wprowadzanie danych przez użytkownika przy użyciu Console.ReadLine
Layla zaczyna od pokazania, jak pobierać dane wejściowe od użytkownika za pomocą Console.ReadLine(). Ta metoda odczytuje linię danych wejściowych z konsoli, co jest niezbędne w interaktywnych aplikacjach C#.
Console.WriteLine("Hello, please write any word:");
string word = Console.ReadLine();Console.WriteLine("Hello, please write any word:");
string word = Console.ReadLine();Operator przypisania
W powyższym fragmencie kodu, Layla używa operatora przypisania (=) do przechowywania wartości uzyskanej z danych wejściowych użytkownika w zmiennej word. Oto analiza:
string word: Deklaruje zmienną o nazwie
wordtypustring.- word = Console.ReadLine(): Używa operatora przypisania (
=) do przypisania wartości wprowadzonej przez użytkownika (uzyskanej zConsole.ReadLine()) do zmiennejword.
W tym kontekście operator przypisania jest używany do ustawienia wartości zmiennej word na to, co użytkownik wpisze w konsoli. Operator przypisania jest fundamentalny w programowaniu, ponieważ jest używany do przechowywania wartości w zmiennych, co pozwala na użycie i manipulację tymi wartościami podczas wykonywania programu.
Operatory arytmetyczne
Operatory arytmetyczne w C# wykonują podstawowe operacje matematyczne takie jak dodawanie, odejmowanie, mnożenie, dzielenie i reszta. Te operatory są proste i niezbędne w każdym języku programowania. Layla nie omawia ich w swoim filmie, ponieważ są to proste operacje matematyczne, które zwracają te same wartości, co w rzeczywistych problemach matematycznych.
Operatory porównania
Operatory porównania w C# pozwalają nam porównywać wartości i podejmować decyzje na podstawie tych porównań. Layla przedstawia operatory większy niż (>), mniejszy niż (<), większy lub równy (>=), mniejszy lub równy (<=), równości (==) i nierówności (!=).
Używanie operatorów porównania w instrukcjach logiki warunkowej
W swoim filmie, Layla Porter zagłębia się w używanie logiki warunkowej w C# do określenia długości słowa podanego przez użytkownika. Ona, w 2:10, zaczyna od pokazu podstawowej struktury instrukcji if, aby sprawdzić długość ciągu za pomocą właściwości Length typu string. Ta właściwość zwraca liczbę znaków w ciągu znaków.
if (word.Length < 6)
{
Console.WriteLine("That's a short word.");
}if (word.Length < 6)
{
Console.WriteLine("That's a short word.");
}Pierwsze sprawdzenie warunkowe używa operatora mniejszy niż (<), aby sprawdzić, czy długość słowa jest mniejsza niż sześć znaków. Jeśli warunek jest prawdziwy, program wypisuje, "To jest krótkie słowo." Ta część kodu pomaga skutecznie kategoryzować krótsze słowa.
Następnie, o 4:00, Layla Porter wprowadza koncept użycia instrukcji else if z połączonymi warunkami używając operatora większy lub równy (>=) oraz operatora logicznego AND (&&). Połączony warunek sprawdza, czy długość słowa wynosi co najmniej sześć, ale jest krótsza niż jedenaście znaków. Jeśli oba warunki są spełnione, program wypisuje, "To jest słowo o średniej długości." Pokazuje to, jak można łączyć wiele warunków, aby podejmować bardziej precyzyjne decyzje na podstawie długości słowa.
else if (word.Length >= 6 && word.Length < 11)
{
Console.WriteLine("That's a medium length word.");
}else if (word.Length >= 6 && word.Length < 11)
{
Console.WriteLine("That's a medium length word.");
}Na koniec, Layla, o 4:40, wyjaśnia użycie instrukcji else do obsługi wszystkich innych przypadków, które nie spełniają poprzednich warunków. Ta część kodu wypisuje, "To jest długie słowo." dla słów, które mają jedenaście znaków lub więcej. Użycie instrukcji else zapewnia, że każde wejście, które nie zostało przechwycone przez wcześniejsze warunki jest odpowiednio obsługiwane.
else
{
Console.WriteLine("That's a long word.");
}else
{
Console.WriteLine("That's a long word.");
}Teraz, Layla uruchamia program (5:15) i wprowadza kilka słów do kategoryzacji używając powyższych instrukcji warunkowych i operatorów porównania:

Operatory logiczne
Operatory logiczne &&, ||, ! pozwala na łączenie wielu warunków w C# w celu stworzenia bardziej złożonej logiki podejmowania decyzji. Layla o 6:24, wyjaśnia, jak te operatory działają razem, aby tworzyć instrukcje warunkowe.
W swoim filmie, Layla Porter wprowadza mini-grę, w której użytkownik jest proszony o wskazanie słowa, które róźni się od innych z listy zwierząt: "pies," "kot," i "złota rybka." Złota rybka jest uznana za różniącą się, ponieważ żyje w wodzie i nie jest ssakiem. Layla (6:55) zaczyna od poproszenia użytkownika o wprowadzenie wyboru za pomocą Console.ReadLine(), a następnie zapewnia, że dane wejściowe są w małych literach za pomocą metody ToLower(), aby uniknąć problemów z rozróżnianiem wielkości liter podczas porównywania ciągów:
Console.WriteLine("Pick the odd one out - dog, cat, goldfish");
string oddOne = Console.ReadLine().ToLower();Console.WriteLine("Pick the odd one out - dog, cat, goldfish");
string oddOne = Console.ReadLine().ToLower();Layla, o 7:32, wyjaśnia użycie operatorów porównania do sprawdzenia odpowiedzi użytkownika z systemem i zdefiniowaną listą zwierząt.
if (oddOne != "dog" && oddOne != "cat")
{
Console.WriteLine("You chose the odd one out!");
}if (oddOne != "dog" && oddOne != "cat")
{
Console.WriteLine("You chose the odd one out!");
}Kod używa operatora nierówności (!=) do sprawdzenia, czy dane wejściowe nie odpowiadają 'dog' i 'cat'. Łącząc te warunki za pomocą operatora logicznego AND (&&), kod zapewnia, że oba warunki muszą być spełnione, aby instrukcja była zadowalająca. Jeśli wprowadzenie nie jest ani "pies" ani "kot," to musi być "złota rybka," a program wypisuje, "Wybrałeś prawidłowe!"
else
{
Console.WriteLine("Better luck next time!");
}else
{
Console.WriteLine("Better luck next time!");
}Jeśli wprowadzenie użytkownika nie spełnia tego warunku, oznacza to, że wprowadzenie to albo "pies" albo "kot," wówczas blok else jest wykonywany, a program wypisuje, "Nie poszczęściło się tym razem!"

Layla (8:30) dalej rozwija znaczenie rozumienia działania operatorów logicznych w instrukcjach warunkowych. Operator AND (&&) wymaga, aby oba warunki były prawdziwe, podczas gdy operator OR (||) wymaga, aby tylko jeden warunek był prawdziwy. Ona (9:05) demonstruje, jak użycie tych operatorów może zmienić zachowanie programu, podkreślając subtelności i potencjalne pułapki przy używaniu operatorów logicznych w C#. To wyjaśnienie pomaga widzom zrozumieć, jak efektywnie korzystać z logiki warunkowej w swoich programach.
Wprowadzenie do instrukcji Switch Case w C
Instrukcje switch oferują alternatywny sposób realizacji podejmowania decyzji wielouruchomieniowych w C#, często bardziej czytelny i efektywny niż wiele instrukcji if-else. W C# 'case c' jest używane do określania warunków w ramach instrukcji switch, zapewniając, że porównanie działa na wartościach tego samego typu.
W jej filmie (12:38), Layla Porter przechodzi od używania instrukcji if-else do instrukcji switch, aby określić kategorię długości danego słowa. Wyjaśnia, że użycie instrukcji switch może uczynić kod czytelniejszym i bardziej efektywnym.
Fragment kodu wygląda następująco:
switch (word.Length)
{
case < 6:
Console.WriteLine("That's a short word!");
break;
case int length when 6 <= length && length < 11:
Console.WriteLine("That's a medium length word!");
break;
default:
Console.WriteLine("That's a long word!");
break;
}switch (word.Length)
{
case < 6:
Console.WriteLine("That's a short word!");
break;
case int length when 6 <= length && length < 11:
Console.WriteLine("That's a medium length word!");
break;
default:
Console.WriteLine("That's a long word!");
break;
}Layla wyjaśnia, że instrukcja switch składa się z wielu przypadków, z których każdy reprezentuje możliwą wartość lub zakres wartości dla zmiennej, która jest oceniana. W tym przypadku zmienna jest word.Length.
Case < 6: Pierwszy przypadek sprawdza, czy długość słowa jest krótsza niż 6. Jeśli ten warunek jest spełniony, program wypisuje "To jest krótkie słowo!" a następnie używa instrukcji break, aby wyjść z bloku switch. Pamiętaj, że przypadek może mieć wiele instrukcji.
Case int length when 6 <= length && length < 11: Drugi przypadek jest bardziej złożony. Używa funkcji dopasowania wzorca wprowadzonej w C# 7.0. Przypadek jest definiowany za pomocą
int length, po którym następuje klauzula when, która określa dodatkowe warunki: długość musi być większa lub równa 6 i mniejsza niż 11. Jeśli wzorce się zgadzają, program wyświetla 'To średniej długości słowo!' i kończy blok switch.- Default: Jeśli żaden z poprzednich przypadków nie zostanie spełniony, zostaje wykonany przypadek domyślny. Działa to jak instrukcja else w strukturze if-else. W tym przypadku program wypisuje "To jest długie słowo!" a następnie wychodzi z bloku switch.
Layla (15:45) podkreśla, że użycie instrukcji switch zamiast instrukcji if może być korzystne, ponieważ sprawia, że kod staje się bardziej czytelny i łatwiejszy do zarządzania, zwłaszcza podczas pracy z wieloma warunkami. Dodatkowo, wspomina, że instrukcje switch mogą być bardziej wydajne, ponieważ kompilator C# optymalizuje je w inny sposób, czyniąc je szybszymi do wykonania.
Switch Expressions (Dopasowanie wzorca)
Wyrażenia switch to nowsza funkcja w C#, która zapewnia bardziej zwięzłą składnię dla prostych decyzji opartych na wartościach. W filmie Layli Porter około 16:25, wprowadza nowoczesną instrukcję switch nazwaną "wyrażenie switch" lub "dopasowanie wzorca switch" w C#. Ten typ instrukcji switch zwraca wartość bezpośrednio, czyniąc kod bardziej zwięzłym i czytelnym.
Ona (około 17:00) zaczyna od pokazania, jak przepisanie instrukcji if-else z użyciem składni wyrażenia switch. Zamiast wykonywać działania, wyrażenie switch przypisuje wartość do zmiennej na podstawie warunków. Na przykład, ten przykład:
// Example of Switch Expression
string message = word.Length switch
{
< 6 => "That's a short word!",
< 11 and >= 6 => "That's a medium length word!",
_ => "That's a long length word!"
};
Console.WriteLine(message);// Example of Switch Expression
string message = word.Length switch
{
< 6 => "That's a short word!",
< 11 and >= 6 => "That's a medium length word!",
_ => "That's a long length word!"
};
Console.WriteLine(message);Oto, co Layla (17:31) wyjaśnia o powyższym kodzie:
String message = word.Length switch: Inicjuje zmienną typu string message i zaczyna wyrażenie switch na podstawie
word.Length.< 6 => 'To krótkie słowo!': Jeśli
word.Lengthjest mniejsze niż 6, zwraca 'To krótkie słowo!' używając operatora mniejszy niż<.< 11 i >= 6 => 'To średniej długości słowo!': Jeśli
word.Lengthjest między 6 a 10 włącznie, zwraca 'To średniej długości słowo!' używającanddla czytelności.- _ => "To jest długie słowo!": Podkreślenie służy jako przypadek domyślny, zwraca "To jest długie słowo!" jeśli żadne z poprzednich warunków nie są spełnione.
Layla podkreśla, że ta składnia jest częścią nowoczesnych funkcji C# zaprojektowanych dla poprawy czytelności i wydajności. Wyrażenie switch jest preferowane nad tradycyjnymi instrukcjami if-else do obsługi wielu warunków zwięźle.
Ona uruchamia kod w 19:30, a wynik jest taki sam jak dla instrukcji if-else:

Wnioski
Film Layli Porter video zapewnia solidne podstawy dla początkujących w programowaniu C#, obejmując kluczowe koncepcje takie jak operatory, instrukcje warunkowe i instrukcje switch. Śledząc jej wyjaśnienia i przykłady, początkujący mogą zdobyć praktyczne wskazówki dotyczące manipulacji danych i kontrolowania przepływu programu efektywnie w C#.
Poprzez zrozumienie tych podstawowych pojęć i praktykę z dostarczonymi przykładami, nowicjusze w C# mogą zbudować solidną podstawę dla bardziej złożonych zadań programistycznych. Sprawdź więcej filmów o C# na jej kanale YouTube.




