Aprendendo Java Para Certificação #18

Tempo de leitura: 2 min

Escrito por blackzig
em 27/07/2020

Tipos de Dados Suportados

A expressão switch tem uma variável alvo que não está habilitada até o programa esteja em tempo de execução. Antes do Java 5, essa variável poderia apenas ser um valor int ou aqueles valores que poderiam ser promovidos para int, especificamente byte, short, char ou int.

Quando enum foi adicionado no Java 5, foi adicionado ao switch o suporte para valores enum. No Java 7, a declaração switch foi além e permitiu os valores String. Finalmente, a declaração switch também suporta qualquer classe numérica empacotada, tais como Byte, Short, Character ou Integer.

Os tipos de dados suportados são:

  • byte e Byte
  • short e Short
  • char e Character
  • int e Integer
  • String
  • Valores enum

Veja que o boolean e long tem tipos empacotados, mas não são suportados pela declaração switch.

Valores Constantes em Tempo de Compilação

Os valores para cada declaração case precisa ser uma constante em tempo de compilação de mesmo tipo de dado que o valor do switch. Isso significa que você pode apenas utilizar literals, constantes enum ou constantes final do mesmo tipo de dado.

A constante final, significa que a variável precisa ser marcada com o modificador final e inicializada com um valor literal dentro da mesma expressão na qual foi declarada.

Vamos ver um exemplo utilizando o dia da semana, onde 0 é Domingo, 1 é Segunda, e assim por diante:

Com o valor 5 a saída do programa será:

Dias da Semana.

A primeira coisa que notamos é que há uma declaração break no fim de cada case e uma seção default. Nós iremos ver a declaração break em detalhes quando chegarmos no assunto dos loops, mas por enquanto sabia que ele encerra a declaração switch e retorna o valor correspondente do escopo que o break se encontra. Se o break não for utilizado a execução do switch irá executar até o bloco default.

Outra coisa para prestar atenção é que o bloco default não está no fim do escopo do switch. O default não tem um lugar específico para ficar. Veja o exemplo a seguir:

Esse código parece com o anterior a esse, exceto por duas declarações break que foram removidas e a ordem foi modificada. Isso significa que o valor dado ao DiasDaSemana, 5, poderá pular para o bloco default e executará até encontrar a declaração break ou terminar a estrutura:

A saída será:

Dias da Semana

Sábado

A ordem da declaração case e default é importante desde que o default termine a switch com apenas uma saída. Se o valor do diasDaSemana for 6, o bloco default será executado? A saída será a seguinte:

Sábado

Mesmo que o bloco default esteja antes do bloco case, apenas o bloco case foi executado. Lembrando da definição do bloco default: só será executado o default se nenhum valor verificado for igual a nenhum case, não importando a posição.

Se o valor da variável diasDaSemana for 0, todas as três declarações serão executadas:

Domingo

Dias da Semana

Sábado

Acesse o link para ver mais um exemplo.

Fonte: OCA – Oracle Certified Associate Java SE 8 Programmer I – Study Guide

Você vai gostar também:

Para enviar seu comentário, preencha os campos abaixo:

Deixe um comentário


*


*


Seja o primeiro a comentar!

Damos valor à sua privacidade

Nós e os nossos parceiros armazenamos ou acedemos a informações dos dispositivos, tais como cookies, e processamos dados pessoais, tais como identificadores exclusivos e informações padrão enviadas pelos dispositivos, para as finalidades descritas abaixo. Poderá clicar para consentir o processamento por nossa parte e pela parte dos nossos parceiros para tais finalidades. Em alternativa, poderá clicar para recusar o consentimento, ou aceder a informações mais pormenorizadas e alterar as suas preferências antes de dar consentimento. As suas preferências serão aplicadas apenas a este website.

Cookies estritamente necessários

Estes cookies são necessários para que o website funcione e não podem ser desligados nos nossos sistemas. Normalmente, eles só são configurados em resposta a ações levadas a cabo por si e que correspondem a uma solicitação de serviços, tais como definir as suas preferências de privacidade, iniciar sessão ou preencher formulários. Pode configurar o seu navegador para bloquear ou alertá-lo(a) sobre esses cookies, mas algumas partes do website não funcionarão. Estes cookies não armazenam qualquer informação pessoal identificável.

Cookies de desempenho

Estes cookies permitem-nos contar visitas e fontes de tráfego, para que possamos medir e melhorar o desempenho do nosso website. Eles ajudam-nos a saber quais são as páginas mais e menos populares e a ver como os visitantes se movimentam pelo website. Todas as informações recolhidas por estes cookies são agregadas e, por conseguinte, anónimas. Se não permitir estes cookies, não saberemos quando visitou o nosso site.

Cookies de funcionalidade

Estes cookies permitem que o site forneça uma funcionalidade e personalização melhoradas. Podem ser estabelecidos por nós ou por fornecedores externos cujos serviços adicionámos às nossas páginas. Se não permitir estes cookies algumas destas funcionalidades, ou mesmo todas, podem não atuar corretamente.

Cookies de publicidade

Estes cookies podem ser estabelecidos através do nosso site pelos nossos parceiros de publicidade. Podem ser usados por essas empresas para construir um perfil sobre os seus interesses e mostrar-lhe anúncios relevantes em outros websites. Eles não armazenam diretamente informações pessoais, mas são baseados na identificação exclusiva do seu navegador e dispositivo de internet. Se não permitir estes cookies, terá menos publicidade direcionada.

Visite as nossas páginas de Políticas de privacidade e Termos e condições.

Importante: Este site faz uso de cookies que podem conter informações de rastreamento sobre os visitantes.
Criado por WP RGPD Pro

Aprenda a Criar e Programar Jogos Completos em 2D e 3D!

Seja um Desenvolvedor de Jogos Profissional