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
yieldquando 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
- switch no Estilo de Seta
- switch como Expressão
- A Palavra-chave yield
- Casos com Vários Rótulos