This article has been localized into Czech by the community.
Příkaz switch
Příkaz switch je jako množina příkazů if. Je to seznam možností, s akcí pro každou možnost a volitelnou výchozí akcí v případě, že nic jiného nehodnotí hodnotu true. Jednoduchý příkaz přepínače vypadá takto:
int number = 1;
switch(number)
{
case 0:
Console.WriteLine("The number is zero!");
break;
case 1:
Console.WriteLine("The number is one!");
break;
}
Identifikátor, který se má ověřit, se umisťuje za klíčové slovo switch, a poté následuje seznam případů case, ve kterých porovnáváme identifikátor s danou hodnotou. Všimněte si, že na konci každého případu case máme příkaz break. C# jednoduše vyžaduje, abychom z bloku před jeho koncem odešli. V případě, že byste psali funkci, místo příkazu break, byste mohli použít příkaz return.
V tomto případě používáme celé číslo, ale mohl by to být také řetězec nebo jakýkoli jiný jednoduchý typ. Také můžete pro více případů specifikovat stejnou akci. To uděláme také v příštím příkladu, kde vezmeme uživatelem zadaný vstup a použijeme ho v našem příkazu switch:
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;
}
V tomto příkladu požádáme uživatele o otázku a navrhneme, aby zadali buď ano, ne nebo možná. Poté si přečteme uživatelský vstup a vytvoříme pro něj příkaz switch. Abychom uživateli pomohli, převedeme vstup na malá písmena, než je zkontrolujeme na našich malých řetězcích, takže není rozdíl mezi malými a velkými písmeny.
Přesto může uživatel provést překlep nebo zkusit napsat něco úplně jiného a v tomto případě nebude tímto specifickým příkazem přepínače generován žádný výstup. Zadejte výchozí klíčové slovo!
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;
}
Není-li žádný z případových příkazů (case) vyhodnocen jako true, bude proveden výchozí (default) příkaz, pokud existuje. Je volitelný, jak jsme viděli v předchozích příkladech.