Menü Bezárás

Switch case a C#-ban.

Vezérlési szerkezeteink közé tartozik az if, else-if, else ágak mellett a különálló switch-case szerkezet. Switch case-t akkor érdemes használni, hogyha egyetlen változó nagyobb mennyiségű, különböző eseteire szeretnénk másképpen, vagy akár több értékre is azonosan reagálni, elegáns módon.

string jogositvany = "A";

switch (jogositvany)
{ 
    case "A":
    case "A1":
    case "A2":
        Console.WriteLine("Motor");
        break;
    case "B":
        Console.WriteLine("Személygépjármű");
        break;
    case "C":
        Console.WriteLine("Teherautó");
        break;
    case "D":
        Console.WriteLine("Busz");
        break;
    default:
        Console.WriteLine("Nem található!");
        break;
}

A switch-case szerkezet fő kulcsszavai a switch, case, break, illetve a default. A switch (változónév) kulcsszó után a vizsgált változó nevét adjuk majd, utána a case-ekben pedig azokat az értékeket, melyekkel ha egyenlő a változónk, a switch-case szerkezet azon ága fog megfutni a break kulcsszóig, majd kilép a szerkezetből. Ha egyik esettel (case) sem egyenlő a változónk, akkor a default ág fog megfutni a szerkezetben.

Az említett példában úgy olvasandó a szöveg, hogy „abban az esetben, ha a jogosítvány változónk A, A1 vagy A2 értéket vesz fel, kiírjuk hogy Motor. B értékkel való egyezés esetén Személygépjármű-t iratunk ki, C esetén Teherautó-t illetve D esetén pedig Busz-t. Minden más esetben pedig (default) Nem található! lesz kiiratva.” .

A Visual Studio-ban beépített snippet-je van a switch kulcsszónak, illetve ha a változó helyére enum változóra hivatkozunk, le generáltathatjuk az enum összes lehetséges értékét a switch-case szerkezetünkhöz.

Alapvetően a switch-case helyettesíthető hosszú if, else-if, else lánccal, azonban a jobb olvashatóság érdekében érdemes lehet megfontolni a switch-case használatát, ha a változónk meghatározott értékeket vehet fel. Általánosságban kijelenthető a switch-case-ről, hogy gyorsabb, mert a fordító a háttérben ugró táblát alkot a fordítás idejében.

Hogyha a megadott változónk értéktartománya túl széleskörű, van lehetőségünk leszűkíteni azt a különböző case-eknél a when kulcsszóval. Erre példát a Microsoft dokumentumában találhatunk.

Kapcsolódó bejegyzések

Források:
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/switch
https://www.dotnetperls.com/if-switch-performance

Posted in Alapszint, C#

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük