Java/Controle de Fluxo/Condicionais
Java⏱ ~2 min de leitura

Condicionais

if, else e switch

Estruturas condicionais controlam o fluxo de execução baseado em condições booleanas. O if/else é a mais básica: executa um bloco se a condição for verdadeira, e outro caso contrário. Condições podem ser encadeadas com else if para verificar múltiplas possibilidades.

O switch é uma alternativa elegante quando você compara a mesma variável contra vários valores possíveis. A partir do Java 14 (estável no 16), o switch expression com seta (→) elimina a necessidade de break e evita os bugs de fall-through acidental.

O operador ternário (?:) é um if/else de uma linha para atribuições simples: String resultado = nota >= 5 ? "Aprovado" : "Reprovado". Para comparar Strings em Java, use .equals() — o operador == compara referências, não conteúdo.

Exemplo.java
// ── if / else if / else ──────────────────────────
int nota = 75;
String conceito;

if (nota >= 90) {
    conceito = "A";
} else if (nota >= 70) {
    conceito = "B";
} else if (nota >= 50) {
    conceito = "C";
} else {
    conceito = "F";
}
System.out.println("Conceito: " + conceito); // B

// ── Switch Expression (Java 14+) ─────────────────
String dia = "SEGUNDA";
String tipo = switch (dia) {
    case "SEGUNDA", "TERCA", "QUARTA", "QUINTA", "SEXTA" -> "Dia útil";
    case "SABADO", "DOMINGO" -> "Fim de semana";
    default -> "Inválido";
};
System.out.println(tipo); // Dia útil

// ── Operador ternário ────────────────────────────
String status = nota >= 60 ? "Aprovado" : "Reprovado";
System.out.println(status); // Aprovado

// ── Comparação de Strings — use .equals(), não == ─
String s1 = "Java";
String s2 = new String("Java");
System.out.println(s1 == s2);       // false (referências diferentes)
System.out.println(s1.equals(s2));  // true  (conteúdo igual)
💡 Dica pro

Evite if/else muito aninhados ("pyramid of doom"). Considere retornar cedo (early return) ou usar switch expression para melhorar a legibilidade.

Recompensa+25 XP+exercícios