A instrução switch
Tags: java
Published: 2024-07-09 22:02:40

- A segunda instrução de seleção Java é switch.

- A instrução switch fornece uma ramificação com vários caminhos, permitindo ao programa fazer uma seleção entre várias alternativas.

- Embora uma série de instruções if aninhadas possa executar testes com vários caminhos, em muitas situações, switch é uma abordagem mais eficiente.

- Funciona verificando o valor de uma expressão em uma lista de constantes.

- Quando uma correspondência é encontrada, a sequência de instruções associada a essa correspondência é executada.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cktglnhm5oe6oiszv5br.png)

- Em versões de Java anteriores ao JDK 7, a expressão que controla switch deve ser do tipo byte, short, int, char ou uma enumeração. A partir do JDK 7, a expressão também pode ser do tipo String.

- Cada valor especificado nos cases deve ser uma expressão de constante exclusiva.

- Não são permitidos valores duplicados nos cases, e o tipo de cada valor deve ser compatível com o tipo da expressão.

- A sequência de instruções default é executada quando nenhuma constante case coincide com a expressão.

- A instrução default é opcional; se não estiver presente, nenhuma ação ocorrerá quando todas as comparações falharem.

- Quando uma correspondência é encontrada, as instruções associadas a esse case são executadas até encontrar um break, ou, no caso do default ou do último case, até o fim do switch ser alcançado.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d9em0twyxiub2xrmt8ig.png)

A saída produzida por esse programa é mostrada aqui:
 i is zero
 i is one
 i is two
 i is three
 i is four
 i is five or more
 i is five or more
 i is five or more
 i is five or more
 i is five or more

- A cada passagem pelo laço, as instruções associadas à constante case que corresponde a i são executadas.

- Todas as outras instruções case são ignoradas.

- Quando i é cinco ou maior, nenhuma instrução case corresponde, então a instrução default é executada.

- Tecnicamente, a instrução break é opcional, mas é comumente usada em switch.

- A presença de uma instrução break dentro de um case faz o programa sair da estrutura switch.

- Se não houver um break após um case correspondente, as instruções do case seguinte serão executadas até encontrar um break ou chegar ao fim da estrutura switch.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cfe1rmz55iudqe2b9f31.png)

Esse programa exibirá a saída abaixo:
 i is less than one
 i is less than two
 i is less than three
 i is less than four
 i is less than five

 i is less than two
 i is less than three
i is less than four
 i is less than five

 i is less than three
 i is less than four
 i is less than five

 i is less than four
 i is less than five

 i is less than five

- Como o programa ilustra, a execução passará para o próximo case se não houver uma instrução break presente. 

- Você pode ter cases vazios. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uguf4u38jug4fsx0a0iq.png)

- Nesse fragmento, se i tiver o valor 1, 2 ou 3, a primeira instrução println() será executada.

- Se i for igual a 4, a segunda instrução println() será executada.


** Instruções switch aninhadas**

- Um switch pode fazer parte da sequência de instruções de um switch externo, o que é chamado de switch aninhado.

- Mesmo se as constantes case do switch interno e externo tiverem valores comuns, não ocorrerá conflito.

- Exemplo:
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/znykpb903thiuwq0nnxx.png)