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:
switch
agora pode ser usado como expressão (switch ... =
).yield
substitui oreturn
dentro de blocos decase
e retorna um valor para a expressãoswitch
.return
nã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-else
para condições variadas e flexíveis. - Use operador ternário para decisões simples e compactas.
- Use
switch
para múltiplas opções baseadas em valores fixos. - Use
for
para repetições com contador definido. - Use
while
para loops condicionais mais flexíveis. - Use
do while
para 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 🚀