Declarație de comutare C # (cu exemple)

În acest articol, vom afla despre declarația switch în C # și cum să le folosim cu exemple.

Instrucțiunea Switch poate fi utilizată pentru a înlocui instrucțiunea if … else if din C #. Avantajul utilizării switch over if … else if statement este codurile va arăta mult mai curat și lizibil cu switch.

Sintaxa declarației switch este:

 comutator (variabilă / expresie) (valoare caz 1: // Instrucțiuni executate dacă expresie (sau variabilă) = valoare 1 pauză; valoare caz 2: // Instrucțiuni executate dacă expresie (sau variabilă) = valoare 1 pauză;……………… implicit: / / Declarații executate dacă nu se potrivește niciun caz) 

Instrucțiunea switch evaluează expresia (sau variabila) și compară valoarea acesteia cu valorile (sau expresia) fiecărui caz (valoare1, valoare2, …). Când găsește valoarea potrivită, instrucțiunile din acest caz sunt executate.

Dar, dacă niciunul dintre cazurile de mai sus nu se potrivește cu expresia, instrucțiunile din interiorul defaultblocului sunt executate. Instrucțiunea implicită de la sfârșitul comutatorului este similară cu blocul else din instrucțiunea if else.

Cu toate acestea, o problemă cu instrucțiunea switch este că, atunci când se găsește valoarea potrivită, execută toate instrucțiunile după ea până la sfârșitul blocului de comutare.

Pentru a evita acest lucru, folosim breakdeclarația la sfârșitul fiecărui caz. Instrucțiunea break oprește programul de la executarea instrucțiunilor care nu se potrivesc prin terminarea executării instrucțiunii switch.

Pentru a afla mai multe despre declarația de pauză, accesați declarația de pauză C #.

Exemplul 1: Instrucțiune de comutare 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; ) ) ) ) 

Când rulăm programul, ieșirea va fi:

 Introduceți un alfabet X Nu o vocală 

În acest exemplu, utilizatorul este solicitat să introducă un alfabet. Alfabetul este convertit în minusculă folosind ToLower()metoda dacă este în majuscule.

Apoi, instrucțiunea switch verifică dacă alfabetul introdus de utilizator este unul dintre a, e, i, o or u.

Dacă unul dintre cazuri se potrivește, Voweleste tipărit în caz contrar, controlul trece la blocul implicit și Not a voweleste tipărit ca ieșire.

Deoarece, ieșirea pentru toate vocalele este aceeași, ne putem alătura cazurilor ca:

Exemplul 2: declarație de comutare C # cu cazuri grupate

 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; ) ) ) ) 

Rezultatul ambelor programe este același. În programul de mai sus, toate vocalele imprimă ieșirea Vowelși pauzele din instrucțiunea switch.

Deși declarația switch face ca codul să pară mai curat decât dacă … altfel dacă instrucțiunea, comutatorul este restricționat să funcționeze cu tipuri limitate de date. Instrucțiunea de comutare în C # funcționează numai cu:

  • Tipuri de date primitive: tip bool, char și integral
  • Tipuri enumerate (Enum)
  • Clasa de corzi
  • Tipuri de date anulabile

Exemplul 3: program de calculator simplu folosind declarația comutatorului 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; ) ) ) ) 

Când rulăm programul, ieșirea va fi:

 Introduceți primul număr: -13.11 Introduceți al doilea număr: 2.41 Introduceți operatorul (+, -, *, /): * -13.11 * 2.41 = -31.5951 

Programul de mai sus ia doi operanzi și un operator ca intrare de la utilizator și efectuează operația pe baza operatorului.

Intrările sunt preluate de la utilizator utilizând metoda ReadLine()și Read(). Pentru a afla mai multe, vizitați C # Basic Input and Output.

Programul folosește declarația switch case pentru luarea deciziilor. Alternativ, putem folosi if-else dacă scara pentru a efectua aceeași operație.

Articole interesante...