Declaração de troca de Java
A instrução switch em Java é uma instrução de fluxo de controle que permite a execução de um bloco de código entre várias alternativas. Ele oferece uma maneira mais legível e eficiente de escrever uma série de instruções if-else ao comparar a mesma expressão com valores diferentes.
Uso
O comando switch avalia uma expressão, compara o valor da expressão com uma série de rótulos case e executa o bloco de código associado à correspondência case. Se não houver correspondência com case, o bloco default será executado, se estiver presente.
Sintaxe
switch (expression) {
case value1:
// code block
break;
case value2:
// code block
break;
// more cases...
default:
// default code block
}
- expressão: Uma variável ou expressão que é avaliada uma vez.
- valor1, valor2, ...: Expressões constantes com as quais o
expressioné comparado. - intervalo: Termina o bloco
switch. Sem isso, a execução é transferida para casos subsequentes. - padrão: Bloco opcional executado se não houver correspondência com
case.
Exemplos
Exemplo 1: Básico switch Declaração
public class SwitchExample {
public static void main(String[] args) {
int number = 2;
switch (number) {
case 1:
System.out.println("One");
break;
case 2:
System.out.println("Two");
break;
case 3:
System.out.println("Three");
break;
default:
System.out.println("Not in range");
}
}
}
Neste exemplo, a instrução switch avalia a variável number. Como number é igual a 2, o resultado será "Two" (dois). A declaração break evita que você passe para casos subsequentes.
Exemplo 2: switch com cordas
public class SwitchStringExample {
public static void main(String[] args) {
String fruit = "Apple";
switch (fruit) {
case "Apple":
System.out.println("Fruit is Apple");
break;
case "Banana":
System.out.println("Fruit is Banana");
break;
default:
System.out.println("Unknown fruit");
}
}
}
Este exemplo demonstra o uso de uma declaração switch com uma String. O switch verifica o valor de fruit e, como ele é "Apple", o resultado será "Fruit is Apple".
Exemplo 3: switch sem break
public class SwitchFallThroughExample {
public static void main(String[] args) {
int day = 3;
switch (day) {
case 1:
case 2:
case 3:
System.out.println("Weekday");
break;
case 4:
case 5:
System.out.println("Weekend");
break;
default:
System.out.println("Invalid day");
}
}
}
Neste exemplo, vários rótulos case são usados para executar o mesmo bloco de código. O resultado será "Dia da semana" porque day é 3 e a instrução break impede que a execução passe para os casos de "Fim de semana".
Dicas e práticas recomendadas
- Use
breakStatements: Sempre inclua as declarações do sitebreak, a menos que você deseje um fall-through intencional. Isso evita a execução não intencional de casos subsequentes. - Caso padrão: Inclua um caso
defaultpara lidar com valores inesperados e melhorar a robustez do código. - Tipos de expressão: A expressão
switchpode ser do tipobyte,short,int,char,String, ou um enum. - Evite a lógica complexa: Use o site
switchpara cenários simples com valores discretos. Para condições complexas, considere o uso de declaraçõesif-else. - Aprimoramentos do Java 12+: No Java 12 e posteriores, as expressões switch permitem retornar valores e usar a palavra-chave
yieldpara um código mais conciso.