palavra-chave switch em Java
A palavra-chave switch
em Java é usada para executar um bloco de código entre várias alternativas. É uma instrução de controle que permite que a variável seja testada quanto à igualdade em relação a uma lista de valores, cada um com seu próprio bloco de código.
Uso
A instrução switch
oferece uma maneira mais limpa e legível de lidar com várias ramificações condicionais em comparação com o uso de várias instruções if-else
.
Sintaxe
switch (expression) {
case value1:
// code block
break;
case value2:
// code block
break;
// more cases...
default:
// default code block
}
expression
: A variável ou expressão cujo valor é comparado com os valores de caso.case value
: Um valor constante com o qual a expressão é comparada. Se forem iguais, o bloco de código correspondente será executado.break
: Termina a declaraçãoswitch
, evitando que você caia.default
: É executado se nenhum valor de case corresponder à expressão.
Exemplos
Exemplo 1: Uso básico
public class SwitchExample {
public static void main(String[] args) {
int day = 3;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
default:
System.out.println("Invalid day");
}
}
}
Neste exemplo, a variável day
é comparada com os valores dos casos. Como day
é 3, o resultado será "Wednesday" (quarta-feira).
Exemplo 2: Usando strings
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;
case "Cherry":
System.out.println("Fruit is Cherry");
break;
default:
System.out.println("Unknown fruit");
}
}
}
Este exemplo demonstra como você pode usar uma declaração switch
com valores String
. Como fruit
é "Apple", o resultado será "Fruit is Apple".
Exemplo 3: Comportamento de passagem
public class SwitchFallThroughExample {
public static void main(String[] args) {
int num = 2;
switch (num) {
case 1:
System.out.println("One");
case 2:
System.out.println("Two");
case 3:
System.out.println("Three");
break;
default:
System.out.println("Default case");
}
}
}
Neste exemplo, a ausência de declarações break
resulta em um comportamento de queda. Como num
é 2, o resultado será:
Two
Three
Default case
Dicas e práticas recomendadas
- Use
break
Statements: Sempre use as declarações do sitebreak
para evitar a queda, a menos que você deseje explicitamente. - Caso padrão: Inclua um caso
default
para lidar com valores inesperados. - Valores constantes: Certifique-se de que os valores de caso sejam constantes ou literais.
- Compatibilidade de tipo: A expressão
switch
pode ser dos tiposbyte
,short
,char
,int
,String
, ou um tipo de enum. Certifique-se de que os valores de caso sejam compatíveis com o tipo da expressão. - Código legível: Use os comandos
switch
para tornar seu código mais legível e de fácil manutenção em comparação com vários comandosif-else
. - Aprimoramentos do Java 12: A partir do Java 12, você pode usar expressões switch para retornar valores diretamente dos casos, simplificando a sintaxe e melhorando a legibilidade do código.
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public class SwitchEnumExample {
public static void main(String[] args) {
Day day = Day.WEDNESDAY;
switch (day) {
case MONDAY:
System.out.println("Monday");
break;
case TUESDAY:
System.out.println("Tuesday");
break;
case WEDNESDAY:
System.out.println("Wednesday");
break;
case THURSDAY:
System.out.println("Thursday");
break;
case FRIDAY:
System.out.println("Friday");
break;
case SATURDAY:
System.out.println("Saturday");
break;
case SUNDAY:
System.out.println("Sunday");
break;
}
}
}
O uso de enums nas instruções switch
pode melhorar a legibilidade do código e a segurança do tipo.