Fundamentos do Java: Estruturas condicionais e de repetição
- #Java
Ao aprender Java, dominar as estruturas condicionais e os laços de repetição é essencial para escrever programas inteligentes e dinâmicos. Neste guia, você entenderá como tomar decisões no código e repetir ações de forma eficiente.
1. Estruturas Condicionais
if, else if e else
Usado para testar condições variadas e executar blocos diferentes dependendo do resultado.
int numero = 5;
if (numero < 0) {
System.out.println("Negativo");
} else if (numero == 0) {
System.out.println("Zero");
} else {
System.out.println("Positivo");
}
Prós: Muito flexível, suporta condições complexas. Fácil de entender para iniciantes.
Contras: Pode ficar longo e difícil de ler com muitas condições encadeadas.
Operador Ternário (Elvis Operator)
Forma compacta para decisões simples, atribuindo valores diretamente.
int numero = 5;
String resultado = numero < 0 ? "Negativo" : (numero == 0 ? "Zero" : "Positivo");
System.out.println(resultado);
Prós: Código curto e direto. Ideal para expressões simples.
Contras: Pode ficar confuso se aninhado várias vezes; não substitui blocos complexos.
switch case
Melhor para múltiplas comparações baseadas em valores fixos.
O break é necessário para que após entrar na estrutura do case, e tombar com o break, o switch seja finalizado, e não fique entrando em todos os outros cases existentes.
int numero = 5;
switch (Integer.signum(numero)) {
case -1:
System.out.println("Negativo");
break;
case 0:
System.out.println("Zero");
break;
case 1:
System.out.println("Positivo");
break;
default:
System.out.println("Valor inesperado");
}
Prós: Organizado, fácil de manter, claro para múltiplos casos.
Contras: Não suporta condições complexas, só valores fixos; pode precisar de adaptações.
switch case com ->
Quando você utiliza a sintaxe de switch com case → (introduzida no Java 14+ com a switch expression) e precisa executar mais de uma linha de código, você deve usar o bloco {} com a palavra-chave yield para indicar o valor de retorno da expressão switch.
int numero = 5;
String resultado = switch (Integer.signum(numero)) {
case -1 -> {
System.out.println("Número analisado: " + numero);
yield "Negativo";
}
case 0 -> {
System.out.println("Número é zero");
yield "Zero";
}
case 1 -> {
System.out.println("Número é positivo");
yield "Positivo";
}
default -> {
System.out.println("Valor inesperado");
yield "Desconhecido";
}
};
System.out.println("Resultado: " + resultado);
Explicação:
switchagora pode ser usado como expressão (switch ... =).yieldsubstitui oreturndentro de blocos decasee retorna um valor para a expressãoswitch.returnnão pode ser usado aqui, pois ele retornaria da função inteira, não doswitch.
2. Estruturas de Repetição
Vamos repetir a mensagem 3 vezes usando diferentes laços.
for
Ideal para repetições quando se sabe o número exato de vezes.
for (int i = 0; i < 3; i++) {
int numero = 5;
if (numero < 0) {
System.out.println("Negativo");
} else if (numero == 0) {
continue;
} else {
System.out.println("Positivo");
}
}
Aqui quando o número for 0, a condição será pulada indo direto ao próximo loop.
Prós: Sintaxe compacta e clara, controle fácil do contador.
Contras: Pouco flexível para loops condicionais dinâmicos.
while
Repete enquanto a condição for verdadeira. Flexível para casos em que o número de repetições não é conhecido.
int i = 0;
while (i < 3) {
int numero = 5;
if (numero < 0) {
System.out.println("Negativo");
} else if (numero == 0) {
System.out.println("Zero");
} else {
System.out.println("Positivo");
}
i++;
}
Prós: Flexível, bom para loops com condições variáveis.
Contras: Requer cuidado para evitar loops infinitos; controle do contador manual.
do while
Garante que o bloco execute pelo menos uma vez, verificando a condição depois.
int i = 0;
do {
int numero = 5;
if (numero < 0) {
System.out.println("Negativo");
} else if (numero == 0) {
System.out.println("Zero");
} else {
System.out.println("Positivo");
}
i++;
} while (i < 3);
Prós: Útil quando é necessário executar o bloco pelo menos uma vez.
Contras: Pode ser confuso para iniciantes; risco de loop infinito se a condição não for bem controlada.
Resumo
- Use
if-elsepara condições variadas e flexíveis. - Use operador ternário para decisões simples e compactas.
- Use
switchpara múltiplas opções baseadas em valores fixos. - Use
forpara repetições com contador definido. - Use
whilepara loops condicionais mais flexíveis. - Use
do whilepara garantir execução mínima antes da condição.
Gostou do artigo?
Deixe sua dúvida sugestão ou elogio nos comentários e vamos conversar !
Não esqueça de me seguir para não perder as novas publicações sobre tecnologia, desenvolvimento de software e inteligência artificial.
Vamos nos conectar? Veja meu LinkedIn 🚀




@DIOCommunity
Sobre a sua dúvida, a escolha entre usar
switchouif-elsecostuma depender de alguns fatores:switchtende a ser mais legível e organizado, além de, em algumas situações, ser mais eficiente.if-elseé mais flexível, pois permite condições mais complexas, como intervalos, expressões booleanas ou combinações lógicas, onde oswitchnão é aplicável.Então, quando as condições começam a se multiplicar, se forem simples comparações diretas de valores, prefiro o
switchpara manter o código mais limpo. Se as condições forem variadas ou envolverem lógica mais complexa, oif-elseacaba sendo a melhor escolha. Espero ter ajudado!Sabrina, seu artigo ficou incrível! A maneira como você explicou as estruturas condicionais e de repetição em Java ficou clara e prática, o que facilita muito o entendimento, especialmente para iniciantes. Eu gostei bastante dos exemplos que você trouxe, pois são bastante representativos e diretos ao ponto. A explicação do operador ternário e do switch, com o exemplo do Java 14+ usando a expressão switch com yield, foi uma ótima adição!
Uma dúvida que surgiu foi: você tem algum exemplo onde escolher entre o uso de switch ou if-else se torna crucial? Como você decide qual usar quando as condições começam a se multiplicar?