Programação em C# – Declaração Condicional Switch – 10
Declaração Condicional Switch
Em alguns casos criamos um condicional aninhado, e notamos que todas as declarações if são parecidas pois avaliam a mesma expressão, sendo a única diferença o valor comparado com a expressão.
Como exemplo temos o código da aplicação usada na aula sobre condicionais aninhados, que avaliava um número e retornava o dia da semana associado.
Num caso assim, podemos reescrever o código cascateado usando uma declaração switch, que pode torná-lo mais eficiente – e muito mais legível.
Sintaxe da declaração switch:
A expressão a ser avaliada é colocada dentro dos parênteses na primeira linha, logo após a palavra chave switch. Seu valor será então comparado com um valor distinto fornecido em cada uma das declarações case nas linhas seguintes. Quando uma correspondência for encontrada (valores forem iguais), o código associado ao case em questão será executado.
As instruções são avaliadas na ordem em que são declaradas, e é muito importante lembrar de usar a palavra chave break em cada caso, pois é ela que permite encerrar o bloco switch quando um case é executado. Sem o break, a expressão continuaria a ser avaliada mesmo após uma correspondência ter sido encontrada em um dos cases.
Por fim, usamos uma seção default para colocar código que será executado caso nenhuma correspondência seja encontrada em nenhum dos cases incluídos no bloco switch.
Exemplo:
Escreva um programa que retorne o código RGB de uma das cores a seguir, digitadas pelo usuário.
Azul – #0000FF
Vermelho – #FF0000
Verde – #00FF00
Preto – #000000
Branco – #FFFFFF
Se o usuário digitar uma cor diferente, exibir uma mensagem de aviso.
Código:
string cor;
Console.WriteLine(“Digite o nome de uma cor:”);
cor = Console.ReadLine();
switch (cor)
{
case “Azul”:
Console.WriteLine(“#0000FF”);
break;
case “Branco”:
Console.WriteLine(“#FFFFFF”);
break;
case “Preto”:
Console.WriteLine(“#000000”);
break;
case “Verde”:
Console.WriteLine(“#00FF00”);
break;
case “Vermelho”:
Console.WriteLine(“#FF0000”);
break;
default:
Console.WriteLine(“Cor Inválida”);
break;
}
|
Observações importantes:
- Podemos usar switch apenas em alguns tipos de dados, como int, string ou char. Com float e double devemos usar o if aninhado.
- Dois rótulos case não podem ter o mesmo valor.
- Os rótulos case devem ser valores constantes; se for necessário calculá-los durante a execução do programa, use if.
Escreva um comentário