A instrução switch é usada para executar ações diferentes com base em condições diferentes.
Use switch para selecionar um dos muitos blocos de código a serem executados, no caso de correspondência de comparação.
Sintaxe:
switch(expressao) {
case x:
// bloco de código caso expressao == x
break;
case y:
// bloco de código caso expressao == y
break;
default:
// bloco de código padrão nenhum caso sendo atendido
}
A instrução switch funciona da seguinte forma:
- A expressão do comutador é avaliada uma vez.
- O valor da expressão é comparado com os valores de cada caso.
- Se houver uma correspondência, o bloco de código associado será executado.
O método getDay() retorna o dia da semana como um número entre 0 e 6.
(Domingo = 0, segunda-feira = 1, terça-feira = 2..)
Este exemplo usa o número do dia da semana para calcular o nome do dia da semana:
switch (new Date().getDay()) {
case 0: dia = "Domingo"; break;
case 1: dia = "Segunda-feira"; break;
case 2: dia = "Terça-feira "; break;
case 3: dia = "Quarta-feira "; break;
case 4: dia = "Quinta-feira "; break;
case 5: dia = "Sexta-feira "; break;
case 6: dia = "Sábado";
}
O resultado do dia será:
Segunda-feira
A Quebra no Switch
Quando o JavaScript alcança uma palavra-chave break a avaliação da instrução switch.
Não é necessário interromper o último caso em um bloco de chave. O bloco quebra (termina) lá de qualquer maneira.
Se instrução break for omitida ao fim da execução de um bloco de uma comparação verdadeira, a próxima comparação será executada mesmo se a avaliação não corresponder ao caso.
A Palavra-Chave Default
A palavra-chave default especifica o código a ser executado se não houver correspondência de caso:
O método getDay()retorna o dia da semana como um número entre 0 e 6.
Se hoje não for sábado (6) nem domingo (0), escreva uma mensagem padrão:
switch (new Date().getDay()) {
case 6: text = "Hoje é sábado"; break;
case 0: text = "Hoje é domingo"; break;
default: text = "Não é fim de semana!";
}
O resultado do texto será:
Não é fim de semana!
O caso default não precisa ser o último caso em um bloco de chave:
switch (new Date().getDay()) {
default: text = "Não é fim de semana"; break;
case 6: text = "Hoje é sábado"; break;
case 0: text = "Hoje é domingo";
}
Se default não for o último caso no bloco de comutação, lembre-se de encerrar o caso padrão com a instrução break.
Blocos de Código Comuns
Os blocos de código podem ser compartilhado por diferentes comparações.
Neste exemplo, os casos 4 e 5 compartilham o mesmo bloco de código e 0 e 6 compartilham outro bloco de código:
switch (new Date().getDay()) {
case 4:
case 5:
texto = "Logo será fim de semana";
break;
case 0:
case 6:
text = "É fim de semana!";
break;
default:
text = "Esperando pelo fim de semana!";
}
Detalhes de Comutação
Se vários casos corresponderem a um valor de caso, o primeiro caso será selecionado.
Se nenhum caso correspondente for encontrado, o programa executará o caso default.
Se default não for encontrado, o programa continuará com as instruções após a troca.
Comparação Estrita
Os casos de troca usam comparação estrita (===).
Os valores devem ser do mesmo tipo para corresponder.
Uma comparação estrita só pode ser verdadeira se os operandos forem do mesmo tipo.
Neste exemplo, não haverá correspondência para x:
var x = "0";
switch (x) {
case 0: texto = "ligado"; break;
case 1: texto = "deligado"; break;
default: texto = "valor não encontrado";
}
Teste-se com exercícios
Crie uma declaração switch que alertará "Olá" se frutas for "banana" e "Bem-vindo" se frutas for "maçã".
switch (fruta) {
"Banana":
alert ("Olá");
break;
"Maçã":
alert ("Bem-vindo");
}