English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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‹/›
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).
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.
À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.