2
respostas

Decifrar Erro de Lógica - Desafio 1

Bom dia.

Para o Desafio 1 (a respeito dos dias da semana) desenvolvi o js abaixo e não deu certo.

alert ('Bem Vindo! Informe o dia da Semana'); let diasDaSemana = 'Segunda, Terça, Quarta, Quinta, Sexta'; let diasFimSemana = 'Sabado, Domingo'; console.log(diasDaSemana) console.log(diasFimSemana) let escolhaDiaSemana = prompt('Escolha um dia da semana'); if (diasDaSemana == escolhaDiaSemana) { alert ("Boa Semana") else alert ("Bom Fim de Semana") }

Podem me auxiliar no sentido de esclarecer no que falhei na lógica dele?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Desde já agradeço.

2 respostas
let semana = prompt('Escolha um dia da semana!');

if (semana == 'sabado' || semana == 'domingo') {
    alert('Bom fim de semana!');
} else {
    alert('Boa semana!');
}

Aqui foi utilizado o operador || que signifca OU caso sabado ou domingo "bom fim de semana", se não for nenhum desses entra no else e "Boa semana". Espero ter ajudado.

Olá Glauco. Acho que entendi o que você tentou fazer, embora haja forma mais simples de fazer essa questão, como a do Miqueas aí.

Na sua condição if você está tentando dizer o seguinte: Se a variável diasDaSemana coincidir com a variável escolhaDiaSemana, então a mensagem 'Boa Semana' será visível. Em outras palavras, se o que o usuário digitar for 'Segunda, Terça, Quarta, Quinta, Sexta' a msg "Boa Semana será impressa. Caso contrário será impresso ''Bom Fim de Semana, certo?

Bom, se sim... para isso, você deve usar um método (que não foi falado em aula) chamado .includes(). O que faz exatamente isso que você quer. "Se uma variável está inclusa numa outra variável, então faça isso, ou faça aquilo", entendi?

Nisso, a sua parte do if deve ficar assim:

if(diasDaSemana.includes(escolhaDiaSemana)){
    alert('Boa Semana');
} else {
    alert('Bom Fim de Semana');
}

Porém, tem outro detalhe...rs. vai funcionar se o usuário digitar da forma que teu código exige: dias da semana iniciado com letra maiúscula. Para corrigir isso você deve usar, no prompt, um outro método chamado .toLowerCase() que converte as letras maiúsculas em minúsculas e além disso você deve escrever, no seu código, os dias da semana em minúscula, assim, tanto faz o usuário digitar Segunda ou segunda, Domingo ou domingo, o código roda sem erros. Fica assim:

let diasDaSemana = 'segunda, terça, quarta, quinta, sexta'; 
let diasFimSemana = 'sabado, domingo';
(...)
let escolhaDiaSemana = prompt('Escolha um dia da semana').toLowerCase();

. . Só mais 2 detalhes:

  1. Não acha que está redundante? O alert e o prompt tem quase a mesma mensagem ...rs (opinião)
  2. É uma dúvida até, é mesmo necessário usar o console.log?