Instrukcja przełącznika języka C # (z przykładami)

W tym artykule dowiemy się o instrukcji switch w C # i jak ich używać z przykładami.

Instrukcja switch może służyć do zastępowania instrukcji if… else if w języku C #. Zaletą używania przełącznika if… w przeciwnym razie, jeśli instrukcja jest, kody będą wyglądały znacznie czysto i czytelnie z przełącznikiem.

Składnia instrukcji switch jest następująca:

 switch (zmienna / wyrażenie) (case wartość1: // Instrukcje wykonywane, jeśli wyrażenie (lub zmienna) = wartość1 przerwa; przypadek wartość2: // Instrukcje wykonywane, jeśli wyrażenie (lub zmienna) = wartość1 przerwa;……………… domyślnie: / / Instrukcje wykonywane, jeśli żaden przypadek nie pasuje) 

Instrukcja switch ocenia wyrażenie (lub zmienną) i porównuje jego wartość z wartościami (lub wyrażeniem) każdego przypadku (wartość1, wartość2,…). Kiedy znajdzie pasującą wartość, wykonywane są instrukcje wewnątrz tej sprawy.

Jeśli jednak żaden z powyższych przypadków nie pasuje do wyrażenia, wykonywane są instrukcje wewnątrz defaultbloku. Instrukcja default na końcu switch jest podobna do bloku else w instrukcji if else.

Jednak problem z instrukcją switch polega na tym, że po znalezieniu pasującej wartości wykonuje ona wszystkie instrukcje po niej, aż do końca bloku switch.

Aby tego uniknąć, breakna końcu każdego przypadku umieszczamy oświadczenie. Instrukcja break zatrzymuje program przed wykonywaniem niezgodnych instrukcji przez zakończenie wykonywania instrukcji switch.

Aby dowiedzieć się więcej o instrukcji break, odwiedź C # break statement.

Przykład 1: instrukcja przełączania języka C #

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': Console.WriteLine("Vowel"); break; case 'e': Console.WriteLine("Vowel"); break; case 'i': Console.WriteLine("Vowel"); break; case 'o': Console.WriteLine("Vowel"); break; case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) ) 

Kiedy uruchomimy program, wynik będzie:

 Wpisz alfabet X To nie samogłoska 

W tym przykładzie użytkownik jest proszony o wprowadzenie alfabetu. Alfabet jest konwertowany na małe litery przy użyciu ToLower()metody, jeśli jest pisany wielkimi literami.

Następnie instrukcja switch sprawdza, czy alfabet wprowadzony przez użytkownika jest alfabetem a, e, i, o or u.

Jeśli jeden z przypadków pasuje, Voweljest drukowany, w przeciwnym razie formant przechodzi do bloku domyślnego i Not a voweljest drukowany jako wynik.

Ponieważ wynik dla wszystkich samogłosek jest taki sam, możemy połączyć przypadki jako:

Przykład 2: instrukcja przełączania języka C # z pogrupowanymi przypadkami

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': case 'e': case 'i': case 'o': case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) ) 

Dane wyjściowe obu programów są takie same. W powyższym programie wszystkie samogłoski wypisują wynik Voweli przerwy w instrukcji switch.

Chociaż instrukcja switch sprawia, że ​​kod wygląda bardziej czysto niż instrukcja if… else if, switch jest ograniczony do pracy z ograniczonymi typami danych. Instrukcja Switch w C # działa tylko z:

  • Prymitywne typy danych: bool, char i typ całkowity
  • Wyliczone typy (wyliczenie)
  • Klasa ciągów
  • Typy dopuszczające wartość null dla powyższych typów danych

Przykład 3: Prosty program kalkulatora korzystający z instrukcji przełącznika języka C #

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char op; double first, second, result; Console.Write("Enter first number: "); first = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter second number: "); second = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter operator (+, -, *, /): "); op = (char)Console.Read(); switch(op) ( case '+': result = first + second; Console.WriteLine("(0) + (1) = (2)", first, second, result); break; case '-': result = first - second; Console.WriteLine("(0) - (1) = (2)", first, second, result); break; case '*': result = first * second; Console.WriteLine("(0) * (1) = (2)", first, second, result); break; case '/': result = first / second; Console.WriteLine("(0) / (1) = (2)", first, second, result); break; default: Console.WriteLine("Invalid Operator"); break; ) ) ) ) 

Kiedy uruchomimy program, wynik będzie:

 Wpisz pierwszą liczbę: -13,11 Wpisz drugą liczbę: 2,41 Wpisz operator (+, -, *, /): * -13,11 * 2,41 = -31,5951 

Powyższy program przyjmuje dwa operandy i operator jako dane wejściowe od użytkownika i wykonuje operację w oparciu o operator.

Dane wejściowe są pobierane od użytkownika za pomocą metody ReadLine()i Read(). Aby dowiedzieć się więcej, odwiedź stronę C # Podstawowe dane wejściowe i wyjściowe.

Program używa instrukcji switch case do podejmowania decyzji. Alternatywnie możemy użyć drabinki if-else if do wykonania tej samej operacji.

Interesujące artykuły...