This article has been localized into Hungarian by the community.
A switch utasítás
A switch utasítás olyan, mint egy sor if utasítás. Egy listányi lehetőséget jelent, melyben minden lehetőséghez egy bizonyos cselekedet társul, valamit opcionálisan egy alapértelmezett tevékenységet is tartalmaz, ha semmi más nem felelne meg a feltételeknek. Egy egyszerű switch utasítás így néz ki:
int number = 1;
switch(number)
{
case 0:
Console.WriteLine("The number is zero!");
break;
case 1:
Console.WriteLine("The number is one!");
break;
}
Az ellenőrzendő azonosító a switch kulcsszó után van, ez után következik az esetek (case) felsorolása, ahol az azonosítót mindig egy bizonyos értékhez hasonlítjuk. Ahogy látható, minden eset végén egy megszakító (break) utasítás is szerepel. Ez azért van, mert a C# nyelv kötelezővé teszi a blokk elhagyását annak végén. Ha funkciót írsz, return utasítás is használható break helyett.
Ez esetben integert használunk, de használható string, vagy más alaptípus is. Emellett lehetséges ugyanazt a viselkedést megadni több esetre is. A következő példában ezt is megtesszük, ahol bevitelt olvasunk be a felhasználótól, amit egy switch utasításban használunk fel:
Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
case "yes":
case "maybe":
Console.WriteLine("Great!");
break;
case "no":
Console.WriteLine("Too bad!");
break;
}
Ebben a példában kérdezünk a felhasználótól, amibe bele van foglalva, hogy a lehetséges válaszok "igen", "nem", vagy "talán". Segítségképp a bevitt szöveget kisbetűssé változtatjuk, majd kisbetűs esetekkel hasonlítjuk össze. Így a bevitt szöveg állhat kis- és nagybetűkből is, az összehasonlításban nincs különbség.
Ennek ellenére a felhasználó elüthet valamit, vagy teljesen más választ is adhat a vártnál. Ez esetben a fent látott switch utasítás semmilyen outputot nem produkál. Erre jó a default kulcsszó!
Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
case "yes":
case "maybe":
Console.WriteLine("Great!");
break;
case "no":
Console.WriteLine("Too bad!");
break;
default:
Console.WriteLine("I'm sorry, I don't understand that!");
break;
}
Ha egyetlen eset sem értékelődött igazra, akkor a default utasítás, ha létezik, kerül végrehajtásra. Tetszés szerint elhagyható, ahogy azt az előző példákban láthattuk.