Prohlášení o přepnutí C # (s příklady)

V tomto článku se dozvíme o příkazu switch v C # a jak je použít s příklady.

Přepínač lze použít k nahrazení příkazu if… else if v C #. Výhodou použití přepínače, pokud… else if je příkaz, budou kódy vypadat mnohem čistěji a čitelněji s přepínačem.

Syntaxe příkazu switch je:

 přepínač (proměnná / výraz) (hodnota případu1: // Příkazy provedené, pokud je výraz (nebo proměnná) = hodnota1 přerušena; hodnota případu2: // Příkazy provedeny, pokud je výraz (nebo proměnná) = hodnota1 zlomena;……………… výchozí: / / Příkazy provedené, pokud se neshoduje žádný případ) 

Příkaz switch vyhodnotí výraz (nebo proměnnou) a porovná jeho hodnotu s hodnotami (nebo výrazy) každého případu (hodnota1, hodnota2,…). Když najde odpovídající hodnotu, jsou provedeny příkazy uvnitř daného případu.

Ale pokud žádný z výše uvedených případů neodpovídá výrazu, jsou provedeny příkazy uvnitř defaultbloku. Výchozí příkaz na konci přepínače je podobný příkazu else block in if else.

Problémem s příkazem switch je však to, že když je nalezena odpovídající hodnota, provede všechny příkazy po něm až do konce bloku switch.

Abychom tomu zabránili, používáme breakprohlášení na konci každého případu. Příkaz break zastaví program v provádění nesouhlasných příkazů ukončením provádění příkazu switch.

Další informace o příkazu break naleznete v prohlášení C # break.

Příklad 1: Pří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; ) ) ) ) 

Když spustíme program, výstup bude:

 Zadejte abecedu X Není samohláska 

V tomto příkladu je uživatel vyzván k zadání abecedy. Abeceda se převede na malá písmena pomocí ToLower()metody, pokud je velká.

Poté příkaz switch zkontroluje, zda abeceda zadaná uživatelem je některá z a, e, i, o or u.

Pokud jeden z případů odpovídá, Vowelje vytištěn, jinak přejde ovládací prvek na výchozí blok a Not a vowelbude vytištěn jako výstup.

Protože výstup pro všechny samohlásky je stejný, můžeme případy spojit jako:

Příklad 2: Příkaz C # switch se seskupenými případy

 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 obou programů je stejný. Ve výše uvedeném programu všechny samohlásky vytisknou výstup Vowela konce příkazu switch.

Ačkoli příkaz switch způsobí, že kód bude vypadat čistěji, než kdyby… else if příkaz, switch je omezen na práci s omezenými datovými typy. Přepínací příkaz v C # funguje pouze s:

  • Primitivní datové typy: bool, char a integrální typ
  • Výčtové typy (výčet)
  • Řetězcová třída
  • Typy s povolenou hodnotou Null výše uvedených datových typů

Příklad 3: Jednoduchý program kalkulačky používající pří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; ) ) ) ) 

Když spustíme program, výstup bude:

 Zadejte první číslo: -13,11 Zadejte druhé číslo: 2,41 Zadejte operátor (+, -, *, /): * -13,11 * 2,41 = -31,5951 

Výše uvedený program bere dva operandy a operátor jako vstup od uživatele a provádí operaci na základě operátoru.

Vstupy jsou převzaty od uživatele pomocí metody ReadLine()a Read(). Další informace najdete v C # Basic Input and Output.

Program používá pro rozhodování příkaz case case. Alternativně můžeme ke stejné operaci použít žebřík if-else if.

Zajímavé články...