English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico do JavaScript

Objeto do JavaScript

Função do JavaScript

HTML DOM do JS

BOM do navegador JS

Tutorial básico de AJAX

Manual de referência do JavaScript

Sentenças switch do JavaScript

Switch é uma sentença de condição como if ... else ..., mas permite testar se uma variável é igual a uma lista de valores com base no valor.

Use switch para escolher um dos muitos blocos de código a serem executados. Esta é uma solução perfeita para evitar a complexidade de estruturas if…else aninhadas.

Uma sentença switch é assim:

switch (expression) {
  case value1:  
    //A sentença é executada
    //O resultado da expressão coincide com value1Correspondência
  break;
  case value2:  
    //A sentença é executada
    //O resultado da expressão coincide com value2Correspondência
  break;
  ...
  case valueN:  
    //A sentença é executada
    //O resultado da expressão coincide com value N
  break;
  default:
   //Quando nenhum dos itens acima for executado
   //Execute o bloco de código aqui
 }

Segundo a lógica do bloco de código acima, esta é a ordem dos eventos que ocorrerão:

  • A expressão switch é avaliada uma vez

  • Compare o valor da expressão com o valor de cada caso

  • Se houver correspondência, execute o bloco de código correspondente

  • Se nenhuma das situações correspondentes for encontrada, execute o bloco de código padrão

O exemplo a seguir usa o número do dia útil para calcular o dia da semana:

var day;
switch (new Date().getDay()) {
case 0: 
 day = "Sunday";
 break;
case 1: 
 day = "Monday";
 break;
case 2: 
 day = "Tuesday";
 break;
case 3: 
 day = "Wednesday";
 break;
case 4: 
 day = "Thursday";
 break;
case 5: 
 day = "Friday";
 break;
case 6: 
 day = "Saturday";
 break;
default: 
 day = "Undefined Day";
}
Teste e veja‹/›

Palavra-chave break

A palavra-chave break associada a cada etiqueta case garante que, assim que uma sentença correspondente for executada, o programa sairá da troca e continuará a executar a sentença subsequente. Se o break for omitido, o programa continuará a executar a próxima sentença após a sentença da estrutura switch.

Se você esquecer de descansar, o script começará a executar nas situações que atendem aos requisitos e, em seguida, executará as situações que atendem aos requisitos:

var num = Number(document.querySelector("input").value);
var text;
switch (num) {
   case 1: 
    text = "O número que você digitou é" 1";
   case 2: 
    text = "O número que você digitou é" 2";
   case 3: 
    text = "O número que você digitou é" 3";
   case 4: 
    text = "O número que você digitou é" 4";
   case 5: 
    text = "O número que você digitou é" 5";
   default: 
    text = "Executar sentença padrão";
}
Teste e veja‹/›

Não há necessidade de interromper a situação final (ou seja, default) do bloco switch. Porque o bloco de语句 finaliza aqui (acaba).

Palavra-chave default

Se não houver correspondência de case, a palavra-chave default especifica alguns códigos a serem executados.

Apenas uma sentença padrão pode ser usada no switch. Embora isso seja opcional, é recomendável usá-lo, pois pode lidar com situações inesperadas.

Múltiplas situações

Às vezes, você pode desejar que diferentes situações usem o mesmo código ou usem código genérico.

Este é um exemplo de sentença switch de ordem de operação, onde quatro valores diferentes executam a mesma operação:

var num = Number(document.querySelector("input").value);
var text;
switch (num) {
   case 1:
   case 2:
   case 3:
   case 4:
  text = "O número que você digitou está entre 1 - 4";
  break;
   case 5:
   case 6:
   case 7:
   case 8:
  text = "O número que você digitou está entre 5 - 8";
  break; 
   default: text = "Executar sentença padrão";
}
Teste e veja‹/›

Se vários cases coincidirem com o valor, o primeiro case será escolhido.

Se não encontrar um case correspondente, o programa continuará a usar o rótulo padrão.

Se não encontrar o rótulo padrão, o programa continuará a executar a sentença alterada.