A instrução switch

Java para Iniciantes (Oracle) - Jul 9 - - Dev Community
  • 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

  • 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

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

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

  • 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

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player