1
resposta

[Projeto] Desafio do fim de semana

Olá, realizei o projeto do desafio para exibir a mensagem se o dia inserido no prompt se trata de um dia da semana ou do fim de semana. Além disso, inclui uma mensagem para dizer que a pessoa colocou uma palavra que não corresponde a um dia da semana.

Como eu poderia melhorar para que, ao responderem um dia da semana que não existe, voltar à mensagem anterior?

let QualDia = prompt('Que dia da semana é hoje?');

if (QualDia == 'sabado' || QualDia == 'sábado' || QualDia == 'domingo') {
    alert('Bom fim de semana');
} else{
    if (QualDia == 'segunda' || QualDia == 'terça' || QualDia == 'quarta' || QualDia == 'quinta' || QualDia == 'sexta'){
        alert('boa semana')
    }else{
        alert('Este dia da semana não existe')
    }
}
1 resposta

Oi, Rafael! Tudo bem?

Para voltar à mensagem anterior quando o usuário responder com um dia da semana que não existe, podemos utilizar a estrutura de repetição "while" em conjunto com a função "includes" para verificar se o dia informado está na lista de dias válidos. Deixando o noso código da seguinte maneira:

// Solicita ao usuário que insira o dia da semana
let QualDia = prompt('Que dia da semana é hoje?');

// Array contendo os dias da semana válidos
let diasValidos = ['segunda', 'terça', 'quarta', 'quinta', 'sexta', 'sábado', 'domingo'];

// Loop enquanto a entrada do usuário não for um dia válido
while (!diasValidos.includes(QualDia.toLowerCase())) {
  // Se a entrada não for válida, pede ao usuário para inserir um dia válido
  QualDia = prompt('Este dia da semana não existe. Por favor, informe um dia válido:');
}

// Verifica se o dia é sábado ou domingo e exibe a mensagem apropriada
if (QualDia.toLowerCase() === 'sábado' || QualDia.toLowerCase() === 'domingo') {
  alert('Bom fim de semana');
} else {
  // Se não for sábado ou domingo, exibe uma mensagem desejando uma boa semana
  alert('Boa semana');
}

Nesse código, criamos um array chamado "diasValidos" que contém todos os dias da semana. Em seguida, utilizamos o laço de repetição "while" para verificar se o dia informado pelo usuário está na lista de dias válidos. Caso não esteja, o usuário será solicitado a informar um dia válido novamente.

Somado a isso, para ficar mais clara a compreensão do código, no trecho diasValidos.includes(QualDia.toLowerCase()): estamos verificando se o valor armazenado na variável QualDia, após ser convertido para letras minúsculas usando .toLowerCase(), está contido no array diasValidos. O método .includes() retorna true se o valor estiver presente no array e false caso contrário. Portanto, esta expressão verifica se a entrada do usuário é um dia de semana válido.

Já o operador ! é um operador de negação, ele inverte o valor lógico da expressão que o segue. Ou seja, se a entrada do usuário não for um dia de semana válido, essa expressão será avaliada como true.

Depois disso, continuamos com a mesma lógica do código original para exibir a mensagem correspondente ao dia informado.

Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓