Skip to content

Latest commit

 

History

History
96 lines (76 loc) · 3.83 KB

File metadata and controls

96 lines (76 loc) · 3.83 KB

Requisitos para estar aqui:

  • Ter finalizado a lista de exercícios obrigatória sobre Operador Ternário!
  • Caso ainda não tenha finalizado, CLIQUE AQUI.

Estruturas de Decisão - Switch...Case

Como assim... Switch...Case?

Outra estrutura de decisão

  • Praticamente todas as linguagens de programação possuem distintas estruturas de decisão.

Quando usar?

  • Quando houverem várias alternativas a partir do valor de uma constante/variável;
  • É uma lógica fácil e intuitiva.

Sobre a utilização

  • O comando switch inicia pela definição da variável/constante que escolhe a condição a ser executada. Cada instrução deve conter um valor de comparação (seguida pelos dois pontos ":"), como no exemplo abaixo.
<meta charset="UTF-8">
<script>
let mesDoAno = 1;
switch (mesDoAno) {
  case 1:
    document.write("Janeiro");
    break;
  case 2:
    document.write("Fevereiro");
    break;
}
</script>

Os comandos sempre devem ser finalizados por

break;

O comando acima escreverá Janeiro na tela, pois a primeira linha já atribuiu o valor 1 logo ao criar a let mesDoAno (let mesDoAno = 1;).

IMPORTANTE!!!

Caso o comando break; não seja incluído logo após o comando que será executado atendendo a condição - que nesse caso será document.write("Janeiro"); - o programa entrará em todas as condições seguintes, até que encontre um comando break; em alguma das próximas condições.

O comando break; para a execução do switch...case, indo para a próxima linha logo após o término das instruções que fazem parte do block switch...case. Ou seja, o programa continua sendo executado, apenas o switch...case que finaliza com o comando break;

Outro recurso do switch...case que vale ser mencionado é a utilização da opção default. Esta opção é a opção padrão e o que houver de instrução nela será executado quando as comparações realizadas não forem validadas. Por exemplo:

<meta charset="UTF-8">
<script>
const diaDaSemana = "domingo";
switch (diaDaSemana) {
    case "sábado":
        document.write("Dia de folga!");
        break;
    case "domingo":
        document.write("Dia de folga!");
        break;
    default:
        document.write("Dia de trabalho!");
        break;
}
</script>

Nesse caso, o resultado será "Dia de folga!". Porém, caso o valor da const diaDaSemana fosse qualquer coisa diferente de sábado ou domingo, por exemplo, o programa executaria a opção default.

Ainda, considerando o exemplo anterior, é possível que otimizemos o código. Observe que existem dois dias de folga (sábado e domingo). Portanto, como ou um ou outro dia são de folga, e diferente deles é trabalho, podemos otimizar da seguinte forma:

<meta charset="UTF-8">
<script>
const diaDaSemana = "segunda";
switch (diaDaSemana) {
    case "sábado":
    case "domingo":
        document.write("Dia de Folga!");
        break;
    default:
        document.write("Dia de Trabalho!");
        break;
}
</script>

Esta otimização é equivalente com a utilização do operador OU, que refere a utilização dos caracteres " || ".

A principal vantagem do switch...case é a facilidade para compreender a sua estrutura, sendo extremamente intuitivo.

Bóra praticar...

Colocando em prática o conhecimento apresentado sobre Switch...Case, vamos para uma pequena lista de exercícios.