Para fazermos escolhas na linguagem TS, utilizamos o comando switch que possui
sua sintaxe e fluxograma apresentados abaixo. O comando switch utiliza o
comando break como parte de sua sintaxe.
Fig. 1: Fluxograma Comando switch
 |
Sintaxe
switch(valor)
{
case caso1:
//código
break;
case caso2:
//código
break;
default:
//código
break;
}
Quando o switch é executado, o valor é comparado sequencialmente a
todos os valores contidos nas cláusulas case até que a comparação seja verdadeira
e o trecho de código é executado.
O case default é executado caso nenhum case testado seja verdadeiro. O uso do
case default não é obrigatório, mas por boas práticas deve ser usado para
verificação de erros.
Exemplo 1
let valor = 1;
switch(valor)
{
case 1: console.log(1); break;
case 3: console.log(2); break;
default: console.log("invalido"); break;
}
Saída
1
switch com múltiplos cases
Para a execução de um mesmo trecho de código para mais de uma caso, basta adicionar
as cláusulas case em sequência ou um abaixo do outra separadas por (:).
Exemplo 6
let valor = 1;
switch(valor)
{
case 1:
case 3: console.log(2); break;
default: console.log("invalido"); break;
}
Saída
2
O comando switch pode também ser utilizando com o tipo de dado string como valores
de comparação contidos nos cases:
Exemplo 2
let valor = "str2";
switch(valor)
{
case "str1": console.log(valor); break;
case 'str2': console.log(valor); break;
default: console.log("invalido"); break;
}
Saída
str2
Não há um tipo de dado char na linguagem TS. Sendo assim, uma string de um caracter
pode ser utilizada nos cases do switch.
O comando switch pode também ser utilizando com o tipo de dado objeto, contanto que
o atributo utilizado pelo comando seja do tipo numérico ou string como no exemplo
abaixo:
Exemplo 3
let obj = { campo: 2 , desc: "string"};
switch(obj.campo)
{
case 1: console.log(obj.campo); break;
case 2: console.log(obj.desc); break;
default: console.log("invalido"); break;
}
Saída
string