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.
// ── 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)Evite if/else muito aninhados ("pyramid of doom"). Considere retornar cedo (early return) ou usar switch expression para melhorar a legibilidade.