Vyhlásenie C # switch (s príkladmi)

V tomto článku sa dozvieme o príkazoch switch v C # a o tom, ako ich používať s príkladmi.

Príkaz switch možno použiť na nahradenie príkazu if … else if v C #. Výhoda použitia prepnutia, ak … v opačnom prípade budú kódy vyzerať oveľa čistejšie a čitateľnejšie s prepínačom.

Syntax príkazu switch je:

 prepínač (premenná / výraz) (hodnota prípadu1: // Príkazy vykonané, ak sa výraz (alebo premenná) = hodnota1 zalomí; hodnota prípadu2: // Príkazy vykonané, ak sa výraz (alebo premenná) = hodnota1 zalomí;……………… predvolené: / / Príkazy vykonané, ak sa nezhoduje žiadny prípad) 

Príkaz switch vyhodnotí výraz (alebo premennú) a porovná jeho hodnotu s hodnotami (alebo výrazmi) každého prípadu (hodnota1, hodnota2, …). Keď nájde zodpovedajúcu hodnotu, vykonajú sa príkazy v danom prípade.

Pokiaľ sa ale žiaden z vyššie uvedených prípadov nezhoduje s výrazom, defaultvykonajú sa príkazy v bloku. Predvolený príkaz na konci prepínača je podobný príkazu else v bloku if else.

Problémom s príkazom switch je však to, že keď sa nájde zodpovedajúca hodnota, vykoná po nej všetky príkazy až do konca bloku switch.

Aby sme sa tomu vyhli, používame breakvyhlásenie na konci každého prípadu. Príkaz break zastaví program v vykonaní nesúhlasných príkazov ukončením vykonania príkazu switch.

Ak sa chcete dozvedieť viac o vyhlásení o zlome, navštívte C # vyhlásenie o zlome.

Príklad 1: Príkaz C # switch

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

Keď spustíme program, výstup bude:

 Zadajte abecedu X Nie samohláska 

V tomto príklade je používateľ vyzvaný na zadanie abecedy. Abeceda sa prevádza na malé písmená pomocou ToLower()metódy, ak je veľká.

Potom príkaz switch skontroluje, či je abeceda zadaná používateľom niektorá z a, e, i, o or u.

Ak sa jeden z prípadov zhoduje, Vowelvytlačí sa inak, ovládací prvok prejde na predvolený blok a Not a vowelvytlačí sa ako výstup.

Pretože výstup pre všetky samohlásky je rovnaký, môžeme prípady spojiť ako:

Príklad 2: Príkaz C # switch so zoskupenými prípadmi

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

Výstup oboch programov je rovnaký. Vo vyššie uvedenom programe všetky samohlásky vytlačia výstup Vowela konce príkazu switch.

Aj keď príkaz switch spôsobí, že kód bude vyzerať čistejšie, ako keby … else if príkaz, switch je obmedzený na prácu s obmedzenými dátovými typmi. Príkaz Switch v C # funguje iba s:

  • Primitívne dátové typy: bool, char a integrálny typ
  • Vymenované typy (Enum)
  • Trieda strún
  • Nullable typy vyššie uvedených dátových typov

Príklad 3: Jednoduchý program kalkulačky používajúci príkaz C # switch

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

Keď spustíme program, výstup bude:

 Zadajte prvé číslo: -13,11 Zadajte druhé číslo: 2,41 Zadajte operátora (+, -, *, /): * -13,11 * 2,41 = -31,5951 

Vyššie uvedený program berie dva operandy a operátor ako vstup od používateľa a vykonáva operáciu na základe operátora.

Vstupy sú prevzaté od používateľa pomocou metódy ReadLine()a Read(). Ak sa chcete dozvedieť viac, navštívte C # základný vstup a výstup.

Program používa pri rozhodovaní vyhlásenie o prepnutí prípadu. Alternatívne môžeme na vykonanie rovnakej operácie použiť rebrík if-else if.

Zaujímavé články...