image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Sabrina Moreira
Sabrina Moreira18/06/2025 16:41
Compartilhe
Suzano - Python Developer #2Recomendados para vocêSuzano - Python Developer #2

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 o return dentro de blocos de case e retorna um valor para a expressão switch.
  • return não pode ser usado aqui, pois ele retornaria da função inteira, não do switch.

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 🚀

Compartilhe
Recomendados para você
Riachuelo - Primeiros Passos com Java
GFT Start #7 - Java
NTT DATA - Java e IA para Iniciantes
Comentários (2)
Sabrina Moreira
Sabrina Moreira - 26/06/2025 14:48

@DIOCommunity

Sobre a sua dúvida, a escolha entre usar switch ou if-else costuma depender de alguns fatores:

  • Quando temos muitas condições baseadas em valores constantes e discretos (como números inteiros, enums ou strings específicas), o switch tende a ser mais legível e organizado, além de, em algumas situações, ser mais eficiente.
  • Já o if-else é mais flexível, pois permite condições mais complexas, como intervalos, expressões booleanas ou combinações lógicas, onde o switch não é aplicável.

Então, quando as condições começam a se multiplicar, se forem simples comparações diretas de valores, prefiro o switch para manter o código mais limpo. Se as condições forem variadas ou envolverem lógica mais complexa, o if-else acaba sendo a melhor escolha. Espero ter ajudado!

DIO Community
DIO Community - 23/06/2025 14:36

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?

Recomendados para vocêSuzano - Python Developer #2