Olá desenvolvedores, se você leu todos os tutoriais da JDev Treinamento até aqui, então inevitavelmente em algum exemplo você esbarrou em alguma estrutura de decisão ou instruções de seleção. Dominar as estruturas de decisões é de extrema relevância no dia a dia do programador, visto que são elas que possibilitam as tomadas de decisões que podem ou não alterar o fluxo de execução de um programa.

VÍDEO AULA – ESTRUTURAS DE DECISÃO EM JAVA.

Neste tutorial abordaremos três recursos importantes para a criação de estruturas de tomadas de decisão dentro da linguagem Java, “if, else, switch e também o operador ternário”. Não importa qual seja a complexidade do sistema, a probabilidade de que as estruturas de decisões estejam presentes são enormes.

As instruções de seleção são assim definidas por Deitel, “o if realiza uma ação (seleciona) se a condição for verdadeira, ou não a realiza se a condição for falsa. Podemos chamar de análise booleana. O if … else, do mesmo modo realiza uma ação se a condição for verdadeira, porém, se a condição for falsa ele realizará uma ação diferente.

Entre as estruturas de decisão, temos a seleção switch, que dependerá do valor de uma expressão para então realizar uma de muitas ações diferentes possíveis. Por fim, o operador ternário, que aqui colocamos como um bônus, escolhe uma entre duas expressões, atribuindo o valor a uma variável e apresentando o resultado após a avaliação.

ESTRUTURAS DE DECISÃO E PERFORMANCE

Na medida em que o funcionamento de uma estrutura de decisão é um conceito bem simples, assim como sua própria estrutura, conhecer-lhe os detalhes é essencial, visto que um pequeno erro em sua estruturação pode incorrer no desenvolvimento de um sistema falho.

No entanto, por outro lado a ciência acerca da construção correta de estruturas condicionais da linguagem podem levar a códigos, mais claros, organizados e performáticos. Sendo fundamental este conhecimento para a construção de classes e manipulação de objetos.

Observe, a imagem abaixo ilustra em um diagrama de blocos, a estrutura if/else, se a média for maior ou igual a 7, o aluno está aprovado, se não, ele está reprovado.

Utilizando o recurso do pseudocódigo para escrever o diagrama de bloco acima, nosso pequeno algoritmo ficaria assim.

IF MEDIA >= 7 THEN
RESULTADO = "APROVADO";
ELSE
RESULTADO = "REPROVADO";

Contudo, as instruções em um programa de computador são executadas uma após a outra, em uma sequência (paradigma da programação procedural), obedecendo a ordem em que foram escritas. Assim, quebrar esse paradigma de forma a possibilitar que a próxima instrução a ser executada não será a próxima da sequência, exige instruções específicas. Vamos a elas.

ESTRUTURA DE DECISÃO IF

A estrutura de decisão “if” ou instrução de seleção única constitui uma construção simples que permite que uma instrução ou um bloco de instruções seja executado após a análise de determinada condição que deverá ser satisfeita para que a execução ocorra. O que ela faz é avaliar se uma expressão é verdadeira (true) ou falsa (false).

É importante ressaltar que em Java essa expressão deve ser sempre um boolean. Assim, fragmentando o exemplo acima, “media do aluno”, se a média do aluno for maior ou igual a 7, ou seja, se a expressão for verdadeira, imprima “APROVADO”.

Mas se a expressão for falsa, a instrução print (System.out.println)será ignorada e a próxima instrução será executada.

IMPORTANTE: As chaves funcionam para o Java como um delimitador de bloco ou de um conjunto de instruções. Quando há apenas uma linha de código o uso deste delimitador é opcional. Entretanto, como forma de manter a legibilidade do código, a literatura recomenda o seu uso.

ESTRUTURAS DE DECISÃO IF / ELSE

Espero ter deixado evidenciado que a instrução de decisão de seleção única if, somente processará a ação indicada se a condição for verdadeira (true); caso contrário, a ação é pulada.

Mas se desejarmos definir uma ação para quando a condição for verdadeira e outra ação distinta para quando a condição for falsa, então usaremos a instrução de seleção dupla, if … else, que nos permitirá executar uma ação fora da ordem da sequência.

Assim sendo, o primeiro bloco de instrução somente será executado se a condição for true, caso contrário, se a condição for false, o bloco de instrução a ser executado será o segundo, desviando então, o fluxo de execução do sistema.

Obviamente podemos criar instruções if…else aninhadas, testando múltiplas condições e colocando um if…else dentro de outro if…else.

ESTRUTURAS DE DECISÃO ELSE-IF

Com este recurso poderemos adicionar uma nova condição a estrutura de decisão, se a média do aluno for maior ou igual a 7, ou seja se a expressão for verdadeira, imprima “APROVADO”, senão, se a média for maior ou igual a 5 e menor que 7, imprima “EM RECUPERAÇÃO”, caso contrário imprima “REPROVADO”.

Note que há outra forma de fazer o mesmo código obtendo o mesmo resultado. Veja no exemplo abaixo do pseudocódigo uma segunda e mais enxuta forma de escrever o algoritmo “média do aluno” ficaria assim

IF MEDIA >= 5 THEN
IF MEDIA >= 7
RESULTADO = "APROVADO";
ELSE
RESULTADO = "RECUPERAÇÃO";
END
ELSE
RESULTADO = "REPROVADO";
END

Se você está começando agora em programação, mas já coloca a mão na massa, fica o desafio de implementação do pseudocódigo acima, cujo diagrama de blocos mostramos abaixo.

OPERADOR TERNÁRIO

A linguagem Java fornece um operador ternário ou operador condicional (?:). Este operador pode ser utilizado no lugar de uma instrução if…else. Entretanto, ao contrário desta, quando usamos o operador ternário, codificamos as instruções em apenas uma linha, tornando o código mais curto.

Ao avaliarmos a expressão booleana que retorna valores true ou false, isto é, a expressão a esquerda da interrogação (?), caso ela seja verdadeira a expressaoCondicional_01, declarada após  a interrogação (?) será executada; do contrário, caso seja falsa, a expressaoCondicional_02, que foi declarado após os (:) é a que será executada.

É possível concatenar as expressões de forma a combinar os três possíveis resultados, veja o exemplo abaixo que retorna também que o aluno foi “REPROVADO”. Mas esta formato não é encorajado.

ESTRUTURA DE DECISÃO SWITCH-CASE

A estrutura de decisão switch-case ou instrução de seleção múltipla switch constitui uma forma de realizar diferentes ações, tendo como base os valores de uma única expressão constante, veja bem, a expressão é constante, não os seus valores.

Dessa forma, uma expressão é declarada entre parênteses, sendo os valores possíveis byte, char, short ou int, ou uma String, e compara o valor contido na expressão com os valores de cada rótulo case. Em suma, a expressão deve retornar um valor compatível com pelo menos um dos valores especificados em cada “case”.

Com efeito temos que após comparar o valor da expressão com o valor do rótulo case, quando uma correspondência for encontrada as instruções do referido case serão executadas.

Também pelo exposto acima, 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 até que uma instrução break ou o fim do switch seja encontrado.

A instrução break provê um desvio para o final do bloco de execução.

Ok, mas e se nenhum valor correspondente for encontrado entre os rótulos case? Para esta situação, um “caso default” deve ser declarado ao final, com uma mensagem informando que nenhum valor correspondente foi encontrado.

EM POUCAS PALAVRAS

O que vimos neste tutorial foi um conteúdo bem relevante sobre as estruturas de decisão, if… else, switch/case, estruturas estas, capazes de impactar diretamente na performance da sua aplicação. Por conseguinte aprendemos também a trabalhar com os operadores ternários. Agora é a sua vez, pratique tudo que aprendeu até que tenha assimilado o conteúdo, em caso de dúvidas, revisite a nossa página, fale com a gente.

Solidifique sua base de conhecimento em algoritmos, pratique, faça os exercícios, complemente seus estudos com leituras, videoaulas e prática constante, seja consistente na busca pelo seu sucesso.

Aprenda mais sobre a lógica com Java.

Lógica + JAVA
Clique aqui

 

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.


curso de java profissional

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.

Conhecer Curso


Lógica de Programação

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..

Conhecer Curso