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:

switch (expressão) {
case valor1 :
   código a ser executado
break;
case valor2 :
   código a ser executado
break;
case valor3 :
   código a ser executado
break;
default :
   código a ser executado
break;
}

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.

Sobre Fábio dos Reis (1379 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*