Curso de JavaScript Aula 08 Estrutura condicional switch

Nessa vídeo aula vamos aprender a trabalhar com a estrutura condicionar switch, iremos desenvolver um script para exibir a data atual automaticamente para fixarmos o aprendizado do 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.

switch

A condicional switch avalia uma expressão, combinando o valor da expressão para um cláusula case, e executa as instruções  associadas ao case.

Sintaxe

switch (expressão) {

  case valor1:

    //Instruções executadas quando o resultado da expressão for igual á valor1

    break;

  case valor2:

    //Instruções executadas quando o resultado da expressão for igual á valor2

    break;

  case valueN:

    //Instruções executadas quando o resultado da expressão for igual á valorN

    break;

  default:

    //Instruções executadas quando o valor da expressão é diferente de todos os cases

    break;

}

expressão

Uma expressão que será compara á cada cláusula case.

case expressãoN

Uma cláusula case que será comparada á expressão.

Descrição

Se a condição for correspondida, o programa executa as instruções asssociadas. Se múltiplos casos corresponderem o valor, o primeiro caso que corresponder é selecionado, mesmo se os casos não forem iguais entre si.

O programa primeiro procura por um caso o qual a expressão avalie como tendo o mesmo valor que o input da expressão (usando a comparação de igualdade estrita, ===) transferindo assim o controle para a cláusula encontrada e em seguida execudando as instruções associadas. Caso nenhum caso seja correspondido, então o programa procura pela cláusula opicional default, que, se encontrado, tem o controle transferido à ele, executando suas instruções associadas. Se não ouver uma cláusula default, o programa continua a execução da instrução seguindo para o final do switch. Por convenção, a cláusula default é a última, mas não é algo obrigatório.

A instrução opcional break associada com cada case garante que o programa saia da condicional switch assim que a instrução correspondente for executada  e executa a instrução que segue logo após o switch. Caso break seja omitido, o programa continua a execução para a próxima instrução dentro de switch.

Código desenvolvido na vídeo aula

function data() {
    data = new Date;

    var diaMes = data.getDate();
    var diaSemana = data.getDay();
    var mes = data.getMonth();
    var ano = data.getFullYear();
    var hora = data.getHours();

    if (hora >= 6 && hora < 12) {
        saudacao = "Bom dia!";
    } else if (hora >= 12 && hora < 18) {
        saudacao = "Boa tarde!";
    } else if (hora >= 18 && hora <= 23) {
        saudacao = "Boa noite!";
    } else {
        saudacao = "Boa madrugada!";
    }

    switch (diaSemana) {
        case 0:
            diaSemana = "domingo";
            break;
        case 1:
            diaSemana = "segunda-feira";
            break;
        case 2:
            diaSemana = "terça-feira";
            break;
        case 3:
            diaSemana = "quarta-feira";
            break;
        case 4:
            diaSemana = "quinta-feira";
            break;
        case 5:
            diaSemana = "sexta-feira";
            break;
        case 6:
            diaSemana = "sabádo";
            break;
    }
    switch (mes) {
        case 0:
            mes = "janeiro";
            break;
        case 1:
            mes = "fevereiro";
            break;
        case 2:
            mes = "março";
            break;
        case 3:
            mes = "abril";
            break;
        case 4:
            mes = "maio";
            break;
        case 5:
            mes = "junho";
            break;
        case 6:
            mes = "julho";
            break;
        case 7:
            mes = "agosto";
            break;
        case 8:
            mes = "setembro";
            break;
        case 9:
            mes = "outubro";
            break;
        case 10:
            mes = "novembro";
            break;
        case 11:
            mes = "dezembro";
            break;
    }

    document.getElementById("data").innerHTML = saudacao + " Hoje é " + diaSemana + ", " + diaMes + " de " + mes + " de " + ano;
}

O código desenvolvido pode ser melhorado e reduzido drasticamente, por exemplo utilizando array, ou operador ternário.



Hospedagem Profissional de Sites