This article has been localized into Portuguese by the community.
A instrução switch
A instrução switch é como um conjunto de instruções if. É uma lista de possibilidades, com uma ação para cada possibilidade, e uma ação padrão opcional, caso nada mais seja avaliado como verdadeiro. Uma simples declaração de troca é assim:
int number = 1;
switch(number)
{
case 0:
Console.WriteLine("The number is zero!");
break;
case 1:
Console.WriteLine("The number is one!");
break;
}
O identificador a ser verificado é colocado após a palavra-chave do switch e, em seguida, há a lista de instruções case, onde verificamos o identificador em relação a um determinado valor. Você notará que temos uma declaração de quebra no final de cada caso. C# simplesmente exige que deixemos o bloco antes que ele termine. No caso de você estar escrevendo uma função, você poderia usar uma declaração de retorno em vez da instrução break.
Neste caso, usamos um inteiro, mas também pode ser uma string ou qualquer outro tipo simples. Além disso, você pode especificar a mesma ação para vários casos. Faremos isso no próximo exemplo também, onde pegamos uma entrada do usuário e a usamos em nossa instrução 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;
}
Neste exemplo, fazemos uma pergunta ao usuário e sugerimos que ele insira yes, no ou maybe. Em seguida, lemos a entrada do usuário e criamos uma instrução switch para ela. Para ajudar o usuário, convertemos a entrada em minúsculas antes de verificá-la em nossas sequências minúsculas, para que não haja diferença entre letras minúsculas e maiúsculas.
Ainda assim, o usuário pode criar um erro de digitação ou tentar escrever algo completamente diferente e, nesse caso, nenhuma saída será gerada por essa instrução específica de opção. Digite a palavra-chave padrão!
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;
}
Se nenhuma das instruções case for avaliada como true, a instrução padrão, se houver, será executada. É opcional, como vimos nos exemplos anteriores.