Ebben a cikkben megtudhatjuk a C # kapcsoló utasításait, és hogyan használhatjuk példákkal.
A Switch utasítás használható az if… else if utasítás helyettesítésére a C # -ben. Az átkapcsolás előnye, ha… ha a kód a kód, akkor sokkal tisztább és olvashatóbb lesz a kapcsolóval.
A switch utasítás szintaxisa:
kapcsoló (változó / kifejezés) (esetérték1: // utasítások végrehajtása, ha kifejezés (vagy változó) = érték1 törés; esetérték2: // utasítások végrehajtása, ha kifejezés (vagy változó) = érték1 törés;……………… alapértelmezett: / / Végrehajtott utasítások, ha egyetlen eset sem felel meg)
A switch utasítás kiértékeli a kifejezést (vagy változót), és összehasonlítja annak értékét az egyes esetek értékeivel (vagy kifejezésével) (érték1, érték2,…). Amikor megtalálja a megfelelő értéket, az adott eseten belüli utasítások végrehajtásra kerülnek.
De ha a fenti esetek egyike sem felel meg a kifejezésnek, akkor a default
blokkon belüli utasítások végrehajtásra kerülnek. Az alapértelmezett utasítás a kapcsoló végén hasonló a másik blokkhoz az if else utasításban.
A kapcsoló utasítással azonban problémát jelent, hogy az egyező érték megtalálása után az összes utasítást végrehajtja utána a kapcsolóblokk végéig.
Ennek elkerülése érdekében break
minden eset végén állítást használunk . A break utasítás megszakítja a programot a nem egyező utasítások végrehajtásától a switch utasítás végrehajtásának megszüntetésével.
Ha többet szeretne megtudni a break utasításról, látogasson el a C # break utasításra.
1. példa: C # kapcsoló utasítás
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; ) ) ) )
A program futtatásakor a kimenet a következő lesz:
Írja be az ábécét X Nem magánhangzó
Ebben a példában a felhasználót arra kérjük, hogy írja be az ábécét. Az ábécé ToLower()
metódussal konvertálódik kisbetűvé, ha nagybetűs.
Ezután a switch utasítás ellenőrzi, hogy a felhasználó által beírt ábécé valamelyik-e a, e, i, o or u
.
Ha az egyik eset megegyezik, Vowel
akkor kinyomtatják, ellenkező esetben a vezérlő az alapértelmezett blokkba kerül, és Not a vowel
kimenetként nyomtatja.
Mivel az összes magánhangzó kimenete megegyezik, az eseteket összekapcsolhatjuk:
2. példa: C # switch Statement csoportosított esetekkel
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; ) ) ) )
Mindkét program kimenete megegyezik. A fenti programban minden magánhangzó kinyomtatja a kimenetet, Vowel
és elszakad a kapcsoló utasításától.
Habár a switch utasítás miatt a kód tisztábbnak tűnik, mintha … másként, ha az utasítás, a switch korlátozott adattípusokkal működik. A C # kapcsoló utasítás csak a következőkkel működik:
- Primitív adattípusok: bool, char és integrál típus
- Felsorolt típusok (Enum)
- Vonós osztály
- A fenti adattípusok nem törölhető típusai
3. példa: Egyszerű számológép-program a C # switch Statement használatával
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; ) ) ) )
A program futtatásakor a kimenet a következő lesz:
Írja be az első számot: -13.11 Írja be a második számot: 2.41 Írja be az operátort (+, -, *, /): * -13.11 * 2.41 = -31.5951
A fenti program két operandusot és egy operátort vesz fel a felhasználó bemeneteként, és az operátor alapján hajtja végre a műveletet.
A bemeneteket a felhasználó ReadLine()
és a Read()
metódus segítségével veszik . További információkért látogasson el a C # Basic Input and Output oldalra.
A program a switch case kimutatást használja a döntéshozatalhoz. Alternatív megoldásként használhatjuk az if-else if létra funkciót ugyanazon művelet végrehajtására.