Voltar ao blog

Tomando Decisões Usando a Instrução Switch em Javascript

Tomando Decisões Usando a Instrução Switch em Javascript

Introdução

As instruções condicionais são um dos fluxos de controle mais importantes em qualquer linguagem de programação. Nós as usamos para ditar o comportamento da execução sob alguma condição. No Javascript, blocos condicionais podem ser construídos usando if, else if, else, e switch instruções.

A instrução switch torna o fluxo de controle fácil de ler ao tomar a decisão com base em alguns resultados possíveis para a expressão. Dependendo do caso de uso correspondente, um ou mais blocos de código podem ser executados. O controle switch é semelhante à instrução else if. No entanto, switch é mais legível em termos de sintaxe. Também é ideal para cenários com múltiplos resultados possíveis.

Neste tutorial, focaremos na instrução switch em Javascript e a implementaremos para construir estruturas de controle complexas. Também aprenderemos como usar as instruções break , case, e default dentro do bloco switch para direcionar o fluxo de controle.

Usando a Instrução Switch

A instrução switch funciona comparando o valor de uma variável com expressões possíveis. Em seguida, executa o bloco de código correspondente ao resultado. A sintaxe da instrução switch não é diferente da instrução if. Em resumo, a sintaxe da instrução switch é escrita como:

Abaixo está um exemplo da instrução switch. Ela possui dois casos ou dois resultados possíveis, juntamente com uma opção de fallback especificada pela palavra-chave default. Esta opção de fallback é executada quando a execução é concluída ou quando nenhum caso correspondente é encontrado:

O código acima é executado da seguinte forma:

  1. Primeiro, a expressão é avaliada.

  2. Em seguida, o resultado da expressão é comparado com o case x. Se o valor corresponder, o bloco de código sob o case x é executado.

  3. Se a expressão não corresponder ao case x, então o case y é comparado. Se a correspondência for encontrada, então o código do case y é executado.

  4. Finalmente, se nem o case x nem o case y corresponderem, então o código default é executado e o controle sai do bloco switch .

Exemplo Prático

Para entender a instrução switch, vamos dar uma olhada em um exemplo prático. Estaremos extraindo o valor do dia da semana para a data atual, usando o método getDay() do objeto Date do Javascript. Este valor é um número, para domingo até 6 que é para sábado. Nós o avaliaremos em relação aos valores para determinar qual dia da semana é:

Em seguida, enviaremos este valor para a instrução switch . A instrução switch será executada de cima para baixo para compará-lo com os casos e determinar qual dia da semana é. Assim que o caso for encontrado, o comando break impedirá que o bloco switch continue a avaliar as instruções:

Dependendo do valor retornado pelo getDate() método, ele será testado em relação aos casos um de cada vez, começando do topo. O resultado será diferente dependendo do dia em que você executou o código. O bloco de código default é colocado para que, se nenhum caso corresponder, possamos lidar com esse cenário. No entanto, aqui neste código, o default nunca será chamado, pois há apenas um número finito de dias na semana.

A instrução break garante que, uma vez que o caso tenha correspondido, nenhum outro caso seja testado e o controle saia da instrução switch . Isso torna o programa mais eficiente e rápido.

Testando intervalos no Switch

Até agora, vimos casos de uso muito simples. Mas pode haver momentos em que seja necessário testar em relação a um intervalo de valores, em vez de um único valor. Podemos fazer isso definindo nossa expressão como true e realizando uma operação dentro de cada instrução case .

Vamos demonstrar esse caso de uso com a ajuda de um exemplo. Pegaremos um número e, em seguida, o converteremos em uma nota usando a categorização abaixo:

  • Nota de 90 ou superior é um A

  • Nota de 80 a 89 é um B

  • Nota de 70 a 79 é um C

  • Nota de 60 a 69 é um D

  • Nota de 59 ou inferior é um F

Escreveremos essas instruções como instruções switch . Abaixo está o código para isso:

Ao contrário dos exemplos de código acima, aqui definimos a expressão entre parênteses como true. Portanto, qualquer instrução case que corresponda ao valor true será executada. Assim como a instrução else if, a primeira instrução que corresponder ao valor especificado será executada. Aqui a saída será B, apesar do fato de que até mesmo C e D também correspondem à expressão.

Múltiplos Casos

Se você deseja ter mais de um case com o mesmo bloco de código, também é possível. Isso é análogo à condição ou na instrução if. Nesses cenários, podemos especificar mais de um case para cada bloco de código.

Para ilustrar este conceito, forneceremos um exemplo com os meses do ano. Vamos categorizar esses meses nas estações do ano. Primeiro, usaremos o novo método Date() para encontrar um número correspondente ao mês atual e aplicá-lo à variável month. O método Date().getMonth() retorna um número de 0  a 11, sendo 0 correspondente a janeiro e 11 associado a dezembro.

Categorizaremos usando a especificação abaixo:

  • Inverno: janeiro, fevereiro e março

  • Primavera: abril, maio e junho

  • Verão: julho, agosto e setembro

  • Outono: outubro, novembro e dezembro

Aqui está como o código ficará:

Quando o código acima for executado, dependendo do mês, o nome da estação será exibido no console.

Conclusão

Neste tutorial, demonstramos como usar a instrução switch em aplicações JavaScript. Também aplicamos a instrução switch a um intervalo e múltiplos casos, juntamente com a palavra-chave default. Se você quiser aprender mais sobre JavaScript, pode conferir os seguintes tutoriais:

Feliz computação!

author

Shreyas Patil

Autor · CloudSigma

Preslav Dobrev é um designer criativo na CloudSigma, focado na construção de uma identidade empresarial consistente por meio de canais de marketing tradicionais e inovadores. Ele é hábil em combinar a visão artística com o marketing estratégico para criar narrativas de marca impactantes.

Comentários

Nenhum comentário ainda. Seja o primeiro.