Olá desenvolvedores, prontos para avançar mais um passo em sua aprendizagem de lógica de programação, com o Visualg: switch case? No tutorial anterior, aprimoramos nosso primeiro algoritmo adicionando a estrutura de decisão If…Else ou, como em Portugol, se…senao.
VÍDEO AULA – SWITCH CASE E O VISUALG.
Hoje, ainda no contexto de estruturas de decisão ou instruções de seleção, vamos abordar a estrutura switch case. Vocês lembram como funciona a estrutura switch? Se não lembram, aqui mesmo no JDev temos um tutorial “Estruturas de decisão em Java”. Acesse e descubra tudo o que precisa saber sobre a instrução de seleção switch.
Com efeito, a seleção switch-case ou ainda instrução de seleção múltipla switch, depende do valor de uma única expressão. Isto é, a instrução switch poderá realizar uma de muitas ações diferentes possíveis, dependendo do resultado da condição.
É de suma importância ressaltar que sempre após as instruções do “case”, a instrução de parada break deve ser inserida. Sem esta instrução mesmo que uma correspondência seja encontrada logo no primeiro caso, a switch continuará testando as demais instruções. E continuará até que uma instrução <a href="https://www.w3schools.com/java/java_switch.asp"break ou o fim do switch seja encontrado.
Certamente todos estes conceitos ficarão mais claros a medida em que começarmos as escrever nossos códigos.
REESCREVENDO O ALGORITMO “MEDIAFINAL”
Com o propósito de demonstrar uma situação real onde a estrutura de seleção switch-case se encaixe, em nosso exemplo, optaremos por outro exercício. No entanto, vamos analisar a progressão do algoritmo mediaFinal. Em outras palavras, perceba considerando o que aprendeu se o switch é ou não uma escolha para este algoritmo.
Precisávamos escrever um pseudocódigo que lesse a média final do aluno e retornasse se o mesmo estava aprovado ou reprovado. A média final para aprovação deveria ser um valor maior ou igual a 70. A variável entrada receberia um valor do tipo double, mediaFinal.
Em nosso primeiro contato com este algoritmo, nos precisávamos de uma única variável, mediaFinal. Neste exemplo, a variável mediaFinal já era por nós inicializada com o valor desejado para a média do aluno.
Posteriormente seguimos aprimorando nosso algoritmo, implementando a estrutura de seleção If…Else. Neste ponto passamos a calcular a média e consequentemente a solicitar a entrada das notas pelo teclado. Agora, precisamos reescrever nossa proposição de algoritmo, adaptando-o as novas condições, o ideal seria:
Escreva um pseudocódigo que solicite ao usuário que informe o valor de quatro notas de um determinado aluno. Calcule a média e ao final imprima na tela se o aluno está “APROVADO”, “EM RECUPERAÇÃO” ou “REPROVADO”. A nota final para a aprovação deverá ser maior ou igual a 70. Se a média final for maior ou igual a 50 e menor que 70, o aluno está em recuperação, senão, ele foi reprovado.
IMPORTANTE: As variáveis de entrada receberiam quatro valores do tipo inteiro. Entretanto, deveríamos considere utilizar uma variável de ponto flutuante para efetuar os cálculos.
SWITCH CASE: ESTRUTURA E REGRAS
Escreva um algoritmo que receba um valor do tipo inteiro (somente múltiplo de 10) para a média final do aluno. Para este exemplo, vamos considerar que qualquer valor inteiro inferior a 50 confere ao aluno status de reprovado. Assim, mediaFinal igual a 60, dá ao aluno status de em recuperação, e nota igual a 70, o aluno está aprovado.
A estrutura do case é ideal para microcondições, para valores específicos, exatos. Ok, quase consigo visualizar sua expressão de confusão, se é ideal para lidar com valores específicos, por que utilizá-lo? É verdade, cálculo de notas e média definitivamente não fazem parte desse escopo.
A escolha de mostrar a estrutura case com a implementação de um algoritmo que foge a finalidade da instrução, possui primeiramente cunho didático. É importante também ver na prática o que não funciona, só assim entenderemos o porquê de não funcionar.
A escolha errada sobre o caminho a tomar pode complicar a solução de um problema simples de resolver. Exemplos como estes, fazem saltar aos olhos o quão importante é a modelagem. O quão importante é a construção de diagramas que nos permitirão antever qual caminho deverá ser evitado.
REGRAS DA INSTRUÇÃO SWITCH
A estrutura case não aceita valores de ponto flutuante, somente inteiros e strings. No caso do exemplo mediaFinal, essa condição nos impõe severos limites. Você pôde observar que para garantir essa condição – somente entramos com valores do tipo inteiro. E para garantir essa condição (só aceitar valores múltiplos de 10), deveríamos implementar uma condição que garantisse essa regra do negócio.
Na prática, no mundo real, essa regra não faz sentido, visto que uma nota poderia assumir um valor do tipo float ou double. Até a explicação começa a se tornar complexa quando adotamos uma escolha errada. Veja como ficaria nossa estrutura:
Poderemos aperfeiçoar nosso código. Se declararmos na variável como do “tipo caracter”, poderemos então agrupar mais de uma possibilidade em uma única validação, observe o exemplo.
Mas nem de longe esta é a melhor maneira de estruturarmos nosso algoritmo. O switch-case é a pior escolha para um algoritmo que retorna valores de ponto flutuante ou que exija validações elaboradas. Como mencionamos, o case é ideal para condições simples, para casos de precisão.
No primeiro exemplo declaramos a variável como sendo do tipo inteiro, no segundo, declaramos mediaFinal como sendo do tipo caracter. Em ambos os casos a ferramenta Visualg não exige a utilização de parênteses para os valores de escolha e caso.
EM POUCAS PALAVRAS
O proposito deste tutorial foi cumprido, aprendemos a usar a instrução switch case e exercitamos a lógica de programação. Mas também tivemos a oportunidade de constatar na prática que uma escolha ruim, pode complicar uma solução simples.
O processo de desenvolvimento de softwares e sistemas é muito abrangente. É preciso fazer o levantamento e analisar os requisitos, modelar. O que nos permite em outras palavras enxergar com clareza aspectos abstratos do sistema como as regras de negócio e funcionalidades. Bem como os aspectos concretos, como componentes reutilizáveis e banco de dados. Entre muitas outras tarefas a serem realizadas.
Aprenda mais sobre a lógica com Java.
Curso de programação para você
Selecionei os cursos on-line para você se preparar e abrir as portas para as vagas de programação. Conheça cada um dos cursos nos links oficiais abaixo.
🙂
Curso Profissional + Certificado + Acesso Vilatício + Suporte.
Full-Stack Web Java EE
Mais de 900 aulas em PrimeFaces, JSF, Spring, Hibernate, JPA, Ireport, CDI e muitos mais. Se torne Full-Stack Java Web.
Lógica de Programação
Para se tornar um programador e resolver problemas complexos a sua lógica de programação deve ser a melhor de todas..