99 lines
3.6 KiB
Markdown
99 lines
3.6 KiB
Markdown
---
|
|
title: Switch Statements
|
|
localeTitle: Switch Statements
|
|
---
|
|
## Switch Statements
|
|
|
|
Uma instrução `switch` na programação é semelhante a uma instrução `if-else` , mas tem o benefício de, às vezes, ser mais fácil de ler quando há muitas condições. Também permite adicionar um bloco `default` que será executado se nenhuma das outras condições forem verdadeiras.
|
|
|
|
### Sintaxe:
|
|
|
|
```javascript
|
|
switch(expression) {
|
|
case 1:
|
|
console.log('1');
|
|
break;
|
|
case 2:
|
|
console.log('2');
|
|
break;
|
|
default:
|
|
console.log('No true condition, default');
|
|
}
|
|
```
|
|
|
|
O snippet acima mostra a sintaxe de uma instrução básica de `switch` . Neste exemplo, existem 3 cenários diferentes para:
|
|
|
|
* `expression = 1` : Primeira condição é verdadeira e `1` é impressa no console.
|
|
* `expression = 2` : A segunda condição é verdadeira e `2` é impressa no console.
|
|
* `expression = 'anything else'` : Caso 1 e Caso 2 são ambos falsos, portanto, a condição padrão é executada.
|
|
|
|
A condição `default` é uma condição que será executada se nenhum dos outros casos forem verdadeiros.
|
|
|
|
Nota: Um ponto muito importante a notar aqui é que no trecho acima, `case 1:` e `case 2:` pode parecer representar algum tipo de ordem, mas `1` e `2` não são nada além das respostas que a `(expression)` pode ser avaliada . Portanto, em vez de 1 e 2, pode ser qualquer coisa que a `(expression)` possa avaliar e possa ser testada.
|
|
|
|
Por exemplo:
|
|
|
|
```javascript
|
|
var someValue;
|
|
var expression = someValue;
|
|
switch(expression){
|
|
case someValue:
|
|
console.log('10'); // 10 would be printed to the console
|
|
break;
|
|
case 23:
|
|
console.log('12');
|
|
break;
|
|
default:
|
|
console.log('No matches');
|
|
}
|
|
```
|
|
|
|
Nota: a `expression` no fragmento acima pode ser uma string ou um número.
|
|
|
|
### Pausa
|
|
|
|
A palavra-chave `break` é necessária em cada caso para garantir que apenas o código nesse caso seja executado. Sem o intervalo, vários casos poderiam ser executados. Quando o JavaScript atinge uma palavra `break` chave `break` , ele quebra o bloco de switches. Se o `break` foi deixado de fora do exemplo acima, isso é o que aconteceria:
|
|
|
|
```javascript
|
|
var expression = 1;
|
|
switch(expression) {
|
|
case 1:
|
|
console.log('1'); // 1 would be printed to console
|
|
case 2: // As there is no break after case 1, this case is also executed.
|
|
console.log('2'); // 2 would be printed to the console.
|
|
break; // break -> Switch statement is exited
|
|
default:
|
|
console.log('No true condition, default');
|
|
}
|
|
```
|
|
|
|
### Execute vários casos:
|
|
|
|
`switch` instruções `switch` também permitem que o mesmo bloco de código seja executado por vários casos. Isso pode ser feito adicionando 1 ou mais `case :` e `case :` palavras `case :` chave antes de um bloco de código.
|
|
|
|
Por exemplo:
|
|
|
|
```javascript
|
|
switch (day) {
|
|
case 4:
|
|
case 5:
|
|
console.log('it is nearly the weekend');
|
|
break;
|
|
case 0:
|
|
case 6:
|
|
console.log('it is the weekend');
|
|
break;
|
|
default:
|
|
console.log('Looking forward to the Weekend');
|
|
}
|
|
```
|
|
|
|
No trecho acima:
|
|
|
|
* Se o `day` é `4` ou `5` (quinta ou sexta-feira), `it is nearly the weekend` será impresso para o console como o primeiro caso é executado.
|
|
* Se o `day` for `0` ou `6` , (sábado ou domingo), `it is the weekend` impresso no console quando o segundo caso for executado.
|
|
* Se o `day` for qualquer outro valor, `Looking forward to the Weekend` será impresso para o console, como o caso padrão é executado.
|
|
|
|
### Mais Informações:
|
|
|
|
[Documentação MDN para switch](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch) |