Conhecendo JavaScript - Switch

Neste post vai ser apresentado o Comando Switch, de forma bem simplificada o comando switch é uma estrutura condicional igual ao if, porem sua escrita é diferente, ele recebe um valor como chave, e essa chave no switch irá direcionar o fluxo para o bloco de código dessa mesma chave.
Sua sintaxe:
switch(){
case 1 :
//se opcao = 1;
break:
case 2 :
//se opcao = 2;
break:
case 3 :
//se opcao = 3
break:
default:
//aqui é opcional, igual o else = se opcao não encontrada
}
O switch pode receber uma variável ou uma expressão onde será feita uma comparação com os CASES, direcionando para o bloco de código do case comparado, caso não tenha um case ele direciona para fora do switch ou para o default, o default é opcional.
É necessário o uso da palavra reservada BREAK, pois apos a conclusão do bloco de código ela faz o fluxo da instrução pular para fora do swicth.
Caso não seja adicionada, o switch entra no case selecionado e ao seu termino continua para próximo
case, exemplo...foi selecionado o case1: no case 1 não foi adicionado o break, ele vai terminar tudo que tem no case 1 e em seguida abrirá o código do case 2:
Exemplo
switch(){
case 1 :
document.write("Case1");
case 2 :
document.write("Case2");
break:
case 3 :
//se opcao = 3
break:
default:
//aqui é opcional, igual o else = se opcao não encontrada
}
Vamos Criar um exemplo prático para testar, criar um switch com 5 cases, vamos inserir um numero como chave para testar.
switch(3){
case 1 :
document.write("Estamos no Case1");
break;
case 2 :
document.write("Estamos no Case2");
break;
case 3 :
document.write("Estamos no Case3");
break;
case 4 :
document.write("Estamos no Case4");
break;
case 5 :
document.write("Estamos no Case5");
break;
default:
//aqui é opcional, igual o else = se opcao não encontrada
}
Resultado.
É muito simples de ser utilizada.
Vamos ampliar o código e adicionar agora uma variável para ser comparada como chave.
var dadoComparado = 5
switch(dadoComparado){
case 1 :
document.write("Estamos no Case1");
break;
case 2 :
document.write("Estamos no Case2");
break;
case 3 :
document.write("Estamos no Case3");
break;
case 4 :
document.write("Estamos no Case4");
break;
case 5 :
document.write("Estamos no Case5");
break;
default:
//aqui é opcional, igual o else = se opcao não encontrada
}
Resultado.
Agora vamos realizar uma expressão para testar, comparar duas variáveis
Ao comparar duas variáveis temos retorno true ou false ( verdadeiro e falso) como já visto no if, no switch podemos atribuir ao nosso case true e false segue exemplo;
var compararDado = 5,valorAdicionado =10;
switch(compararDado <= valorAdicionado ){
case true:
document.write("É verdade");
break;
case false:
document.write("É mendira");
break;
default:
document.write("Estamos no defalut");
}
Assim de maneira igual ao if podemos implementar nossa expressão ainda mais.
var compararDado = 5,valorAdicionado =10;
var valor_num = 3, valor_num2 =6 ;
switch(compararDado <= valorAdicionado && valor_num === valor_num2 ){
case true:
document.write("É verdade");
break;
case false:
document.write("É mentira");
break;
default:
document.write("Estamos no default");
}
Resultado.
Assim podemos também realizar uma expressão que retorna um calculo para ser chave no switch.
var compararDado = 5,valorAdicionado =10;
var valor_num = 3, valor_num2 =6, total ;
switch(compararDado >= valorAdicionado || (valor_num+valor_num2) ){
case 1 :
document.write("Estamos no Case1");
break;
case 2 :
document.write("Estamos no Case2");
break;
case 9 :
document.write("Estamos no Case9");
break;
case true:
document.write("É verdade");
break;
case false:
document.write("É mentira");
break;
default:
document.write("Estamos no default");
}
Resultado.
Observe que expressão a somente uma comparação, na primeira um resultado esta retornando false e na segunda um calculo, o resultado do calculo é usado como chave no switch e a expressão OU o valida como true (verdadeiro), pois como já visto OU ( | | ) ele retorna verdadeiro se pelo uma das expressões for verdadeira.
Nesse caso é verificado o que esta na expressão a esquerda primeiro e depois o calculo, podemos fazer testes trocar de lado as expressões deixando a comparação com valor true;
switch((valor_num+valor_num2) || true ){
case 1 :
document.write("Estamos no Case1");
break;
case 2 :
document.write("Estamos no Case2");
break;
case 9 :
document.write("Estamos no Case9");
break;
case true:
document.write("É verdade");
break;
case false:
document.write("É mentira");
break;
default:
document.write("Estamos no default");
}
No resultado é apresentado o case 9
Pode se usar no switch também Strings no case.
var letras = "Nomes";
switch(letras){
case "Carlos" :
document.write("Estamos no Case1");
break;
case "Silvio" :
document.write("Estamos no Case2");
break;
case "Nomes" :
document.write("Estamos no case nomes");
break;
default:
document.write("Estamos no default");
}
Exercício de fixação
Criar um script para receber as cartas de um prédio com 10 apartamentos.
O Desafio é criar um script que recebe cartas e o numero do apartamento que vai receber, apos inserir os dados exibir se foi entregue corretamente.
Obrigatório(utilizar array / if / switch ).
/*Neste Exemplo vou utilizar o que foi visto até o momento
* Espero apresentar de forma simples, para uma melhor compreenssão*/
var cartas=Array();
var apartamento,teste = false;
apartamento = parseInt(prompt("Qual Apartamento desejá entregar a carta"));
cartas[1] = prompt("Quantidade de Cartas");
if(apartamento> 0 && apartamento <=10){
switch (apartamento){
case 1: document.write("Apartameto 1 ");
if(cartas[1] !=0){teste = true;
}else{ teste = false;
}
break;
case 2:
document.write("Apartameto 2 ");
if(cartas[1] !=0){ teste = true;
}else{
teste = false;
}
break;
case 3:
document.write("Apartameto 3 ");
if(cartas[1] !=0){ teste = true;
}else{
teste = false;
}
break;
case 4:
document.write("Apartameto 4 ");
if(cartas[1] !=0){ teste = true;
}else{ teste = false;
}
break;
case 5:
document.write("Apartameto 5 ");
if(cartas[1] !=0){ teste = true;
}else{ teste = false;
}
break;
case 6: document.write("Apartameto 6");
if(cartas[1] !=0){ teste = true;
}else{ teste = false;
}
break;
case 7:
document.write("Apartameto 7 ");
if(cartas[1] !=0){teste = true;
}else{ teste = false;
}
break;
case 8:
document.write("Apartameto 8 ");
if(cartas[1] !=0){ teste = true;
}else{ teste = false;
}
break;
case 9:
document.write("Apartameto 9");
if(cartas[1] !=0){ teste = true;
}else{ teste = false;
}
break;
case 10:
document.write("Apartameto 10 ");
if(cartas[1] !=0){ teste = true;
}else{ teste = false;
}
break;
default:
document.write ("Não foi possivel realizar processo");
}
}else{
document.write("Não tem esse apartamento") }
switch(teste){
case true:
document.write("Existe o Apartamento");
if(cartas[1] !=0){
document.write("Foi entrege: "+cartas[1]+"cartas para o apartamento"+apartamento);
}else{ document.write("Houve um problema ou entregar carta");
}
break;
case false:
document.write("Não foi possivel entregar cartas Numero de cartas: "+cartas[1]+" para o apartamento"+apartamento);
break;
}
Espero neste exemplo acima ter mostrado de forma simples o uso de switch.
E assim finalizamos este post, até mais.
Comentários
Postar um comentário