10/05/2011

JavaScript: Switch, Case e Default

Um comando muito útil em JavaScript é o switch.

O switch funciona como um painel com interruptores, no qual será analisado uma entrada de dado, e um botão será acionado de acordo com o caso.

Basicamente, switch irá substituir o uso de vários if para ações distintas.

Para utilizarmos o comando switch, primeiramente, passamos para o comando a entrada a ser avaliada, o que na maioria das vezes será uma variável. Depois, abrimos um bloco de dados ( { } ). Dentro deste bloco de dados usamos os cases.

Case


Os cases são as possibilidades que o switch deve obter, que pode ser um número, um caracter ou até mesmo uma string. Porém, jamais poderemos fazer uma comparação com o case (ex.: var1 > var2 ou 456 < 555), porque o case apenas aceita condições definitivas.

Cada case é definido pelo uso dos dois pontos ( : ) no final. Portanto, a estrutura básica de switch/case seria:

switch (variável) {
case valor:
código a ser executado se for tal valor;
}

Um detalhe importante que devemos nos ater é o fato de que os cases não tem fim, ou seja, a partir do momento em que um case é acionado, todos os outros cases posteriores também são executados. Isso ajuda no fato de que podemos aninhar vários cases para executar apenas uma faixa de código.

switch (variável) {
case valor1:
case valor2:
case valor3:
código a ser executado caso seja valor1, valor2 ou valor 3
}

Se quisermos separar cada case, podemos utilizar o comando break antes do início do próximo case. Dessa forma, obrigamos o algoritmo a sair de toda estrutura switch e o case seguinte não será executado.

switch (variável) {
case valor1:
código a ser executado caso seja valor1;
break;
case valor2:
código a ser executado caso seja valor2;
break;
}

Default

O default funciona como um case, mas a diferença é que ele só é ativado quando nenhum outro case é ativado. É como se fosse uma forma saber o que fazer caso nada de esperado aconteça.

Cada estrutura switch pode conter apenas um default.

switch (variável) {
case valor1:
código a ser executado caso seja valor1;
case valor2:
código a ser executado caso seja valor2;
default:
código a ser executado caso nem valor1 e nem valor2 apareçam;
}

Para demonstrar, abaixo está um pequeno exemplo que diz o mês em que estamos.

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
    document.write ("Estamos no mês de ");
    hoje = new Date();
    switch (hoje.getMonth()) {
        case 0:
            document.write ("Janeiro");
            break;
        case 1:
            document.write ("Fevereiro");
            break;
        case 2:
            document.write ("Março");
            break;
        case 3:
            document.write ("Abril");
            break;
        case 4:
            document.write ("Maio");
            break;
        case 5:
            document.write ("Junho");
            break;
        case 6:
            document.write ("Julho");
            break;
        case 7:
            document.write ("Agosto");
            break;
        case 8:
            document.write ("Setembro");
            break;
        case 9:
            document.write ("Outubro");
            break;
        case 10:
            document.write ("Novembro");
            break;
        default:
            // se não for nenhum dos cases acima, então:
            document.write ("Dezembro");
    }
//-->
</SCRIPT>

Nenhum comentário: