Conhecendo JavaScript - Switch


Comando 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

Postagens mais visitadas deste blog

Botões Bootstrap Exemplos.

Conhecendo JavaScript - Eventos

Conhecendo JavaScript - HTML DOM