Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvidas] mais duvidas recorrentes

Olá eu sou Jorge Henrique e estou tentando fazer um projeto interativo com botões e numero mais empaque porque há varias alternativas para programa e não 2 como estou acostumado, será que pode me ajudar? Para melhor explicação eu vou inseri os dados!

<!DOCTYPE html>
<html lang="pt-BR">
 <head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Rotina semanal</title>
  </head>
  
  <body>
    <h1>Rotina semanal</h1>
    <input type="text" name="Number" id="A" >
    <input type="button" value="ver" onclick="mostrar(clicar)">
    <div id="B">
    <script>
       function Semanal(){
        var A = window.document.getElementById('A')
        var B = window.document.getElementById('B') 
        var ver = Number(A.value)
        B.innerHTML = `<p> O dia de hoje é!</p>`
        
    }
    </script>
  </body>  
   
   var agora = new Date()
var diaSem = agora.getDay()

console.log(diaSem)

switch(diaSem) {
    case 0:
        console.log('Domigo')
        break
    case 1: 
        console.log('Segunda')
        break
    case 2:
        console.log('Terça')
        break  
    case 3:
        console.log('Quarta')
        break  
    case 4:
        console.log('Quinta')
        break
    case 5:
        console.log('Sexta')
        break
    case 6:
        console.log('Sábado')
        break                
}
1 resposta
solução!

Oii, Jorge Henrique.

Quando saímos de uma estrutura simples de "duas opções" (como um if/else) pra algo que envolve sete dias da semana, o código pode parecer um pouco intimidador, mas a lógica que você começou a usar com o switch é o caminho certo.

O seu código atual tem alguns pequenos desencontros entre o que está no HTML e o que está no JavaScript. Vou ajudar você a organizar isso para que o botão funcione e o resultado apareça na tela em vez de apenas no console.

O que ajustar no seu projeto:

  1. Conexão do botão: No HTML, o seu botão chama uma função chamada mostrar(clicar), mas no seu script a função se chama Semanal(). Elas precisam ter o mesmo nome.
  2. Localização do código: O bloco do switch está fora de qualquer função e fora da tag <script>. Para que ele funcione ao clicar no botão, ele precisa estar dentro da função Semanal.
  3. Exibição na tela: Em vez de usar console.log, vamos atribuir o nome do dia a uma variável e depois mostrá-la na sua div usando o B.innerHTML.

Código organizado e corrigido:

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Rotina semanal</title>
</head>
<body>
    <h1>Rotina semanal</h1>
    <input type="button" value="Ver dia atual" onclick="Semanal()">
    
    <div id="B">
        <p>Clique no botão para saber o dia.</p>
    </div>

    <script>
        function Semanal() {
            var B = window.document.getElementById('B')
            var agora = new Date()
            var diaSem = agora.getDay()
            var nomeDia = ""

            // O switch analisa o número retornado por getDay() (0 a 6)
            switch(diaSem) {
                case 0:
                    nomeDia = 'Domingo'
                    break
                case 1: 
                    nomeDia = 'Segunda-feira'
                    break
                case 2:
                    nomeDia = 'Terça-feira'
                    break  
                case 3:
                    nomeDia = 'Quarta-feira'
                    break  
                case 4:
                    nomeDia = 'Quinta-feira'
                    break
                case 5:
                    nomeDia = 'Sexta-feira'
                    break
                case 6:
                    nomeDia = 'Sábado'
                    break                
                default:
                    nomeDia = 'Dia inválido'
                    break
            }

            B.innerHTML = `<p>O dia de hoje é: <strong>${nomeDia}</strong></p>`
        }
    </script>
</body>
</html>

Por que usar o Switch?

O switch funciona como um menu. Ele olha para o valor de diaSem e pula diretamente para o "caso" correspondente. É muito mais limpo do que escrever sete if um dentro do outro.

  • Break: Ele interrompe a leitura assim que encontra o resultado, evitando que o computador continue processando os outros dias sem necessidade.
  • Default: Serve como uma segurança, caso aconteça algo inesperado (embora os dias da semana sejam fixos).
Você pode ver o código completo aqui:
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!