0Pricing
Java Academy · Aula

Casos com Vários Rótulos

Agrupe vários rótulos

Casos com Vários Rótulos é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 4 aulas no total.

Agrupando rótulos

Com frequência, vários valores devem acionar a mesma ação. O switch moderno permite listar vários rótulos em um único caso, separados por vírgulas, compartilhando um único ramo.

Rótulos separados por vírgulas

Escreva os valores um após o outro, separados por vírgulas, antes de ->. Se qualquer um deles corresponder, o ramo será executado.

public class Main {
    public static void main(String[] args) {
        int day = 7;
        switch (day) {
            case 1, 2, 3, 4, 5 -> System.out.println("Weekday");
            case 6, 7 -> System.out.println("Weekend");
        }
    }
}

Detecção de vogais

Um uso clássico: agrupar todas as vogais em um único ramo em vez de escrever cinco casos separados.

public class Main {
    public static void main(String[] args) {
        char c = 'o';
        switch (c) {
            case 'a', 'e', 'i', 'o', 'u' -> System.out.println("Vowel");
            default -> System.out.println("Consonant");
        }
    }
}

Vários rótulos em expressões

Os casos com vários rótulos também funcionam em expressões switch, retornando o mesmo valor para qualquer um dos rótulos listados.

public class Main {
    public static void main(String[] args) {
        int month = 7;
        String season = switch (month) {
            case 12, 1, 2 -> "Winter";
            case 3, 4, 5 -> "Spring";
            case 6, 7, 8 -> "Summer";
            default -> "Autumn";
        };
        System.out.println(season);
    }
}

Rótulos String agrupados

Valores String também podem ser agrupados. Aqui, várias formas de escrever um comando são associadas a uma única ação.

public class Main {
    public static void main(String[] args) {
        String cmd = "quit";
        switch (cmd) {
            case "quit", "exit", "q" -> System.out.println("Closing");
            case "help", "h" -> System.out.println("Showing help");
            default -> System.out.println("Unknown command");
        }
    }
}

Rótulos de enumerações agrupados

Constantes de enumeração também podem compartilhar um ramo, mantendo compacta a lógica das categorias.

public class Main {
    enum Day { MON, TUE, WED, THU, FRI, SAT, SUN }
    public static void main(String[] args) {
        Day d = Day.SAT;
        String kind = switch (d) {
            case SAT, SUN -> "Rest";
            default -> "Work";
        };
        System.out.println(kind);
    }
}

Sem rótulos duplicados

Cada rótulo pode aparecer apenas uma vez em todo o switch. Listar o mesmo valor em dois ramos é um erro de compilação, pois o compilador não conseguiria decidir qual ramo executar.

public class Main {
    public static void main(String[] args) {
        int n = 2;
        switch (n) {
            case 1, 2 -> System.out.println("Low");
            case 3, 4 -> System.out.println("High");
            default -> System.out.println("Other");
        }
    }
}

Comparação com a queda para o caso seguinte do estilo antigo

No estilo antigo com dois-pontos, o agrupamento exigia casos vazios com queda para o caso seguinte, empilhados acima de um único corpo compartilhado. A sintaxe com vírgulas é muito mais clara e evita quedas acidentais para o caso seguinte.

public class Main {
    public static void main(String[] args) {
        int code = 3;
        switch (code) {
            case 1, 3, 5, 7, 9 -> System.out.println("Odd");
            case 0, 2, 4, 6, 8 -> System.out.println("Even");
        }
    }
}

Agrupando com blocos

Um caso agrupado também pode usar um corpo de bloco. Qualquer um dos rótulos correspondentes executa o bloco inteiro.

public class Main {
    public static void main(String[] args) {
        char grade = 'B';
        switch (grade) {
            case 'A', 'B' -> {
                System.out.println("Pass");
                System.out.println("Well done");
            }
            default -> System.out.println("Try again");
        }
    }
}

Combinando com produção de valores

Rótulos agrupados e yield funcionam juntos quando um ramo compartilhado precisa realizar cálculos.

public class Main {
    public static void main(String[] args) {
        int n = 4;
        int points = switch (n) {
            case 1, 2, 3 -> 10;
            case 4, 5, 6 -> {
                int bonus = n * 2;
                yield 20 + bonus;
            }
            default -> 0;
        };
        System.out.println(points);
    }
}

Ganho de legibilidade

Os casos com vários rótulos reduzem longas listas de ramos repetitivos a alguns grupos claros, tornando a intenção evidente de relance.

public class Main {
    public static void main(String[] args) {
        int http = 204;
        String group = switch (http / 100) {
            case 1, 2, 3 -> "OK-ish";
            case 4, 5 -> "Error";
            default -> "Unknown";
        };
        System.out.println(group);
    }
}

Verificação rápida

Como fazer vários valores executarem o mesmo ramo de switch no Java moderno?

Recapitulação

Você aprendeu os casos com vários rótulos:

  • Liste os valores separados por vírgulas antes de ->
  • Funciona com inteiros, caracteres, Strings e enumerações
  • Não há queda acidental para o caso seguinte, ao contrário do estilo antigo
  • Cada rótulo pode aparecer apenas uma vez
  • Combine com blocos e yield quando necessário

Perguntas Frequentes

A aula “Casos com Vários Rótulos” é grátis?

Sim — o texto completo de “Casos com Vários Rótulos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 4 aulas no total.

O que vou aprender em “Casos com Vários Rótulos”?

Agrupe vários rótulos Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Java Academy?

Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Casos com Vários Rótulos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Java Academy?

Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. switch no Estilo de Seta
  2. switch como Expressão
  3. A Palavra-chave yield
  4. Casos com Vários Rótulos
← Voltar para Java Academy