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
break
Statements: 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
default
para lidar com valores inesperados e melhorar a robustez do código. - Tipos de expressão: A expressão
switch
pode ser do tipobyte
,short
,int
,char
,String
, ou um enum. - Evite a lógica complexa: Use o site
switch
para 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
yield
para um código mais conciso.