1
resposta

Desafio: hora da prática

Uma dúvida para o desafio 1:

Pergunte ao usuário qual é o dia da semana. Se a resposta for "Sábado" ou "Domingo", mostre "Bom fim de semana!". Caso contrário, mostre "Boa semana!"

diaDaSemana = prompt('Qual é o dia da semana?');
if (diaDaSemana == 'Sábado') {
alert('Bom fim de semana!');
} else if (diaDaSemana == 'Domingo') {
alert('Bom fim de semana!');
} else {
alert('Boa semana!');
}

Fiz dessa forma, porém na hora de rodar, escrevi o sabado e domingo sem acento e sem letra maiusculas. Nesse caso não apareceu o alert de Bom fim de samana. Minha dúvida é como fazer esse código reconhecer o fim de semana, mesmo quando o usuário digitar a palavra diferente do que como está no codigo ( por exemplo escrever com letras minusculas e sem acento )

1 resposta

Olá, Priscila. Como vai?

Essa é uma excelente dúvida! O que você vivenciou é um comportamento padrão de praticamente todas as linguagens de programação: o JavaScript é case-sensitive (diferencia letras maiúsculas de minúsculas) e também diferencia caracteres com e sem acento (á é totalmente diferente de a para o computador).

Para resolver o problema das letras maiúsculas e minúsculas, o JavaScript possui um método fantástico chamado .toLowerCase(). Ele pega qualquer texto e o transforma inteiramente em letras minúsculas.

Já para resolver a questão dos acentos de forma simples no início dos estudos, a melhor prática é usar o operador lógico OU (representado por dois canos retos ||) para permitir que o sistema aceite as duas variações da palavra.

Veja como o seu código pode ser reestruturado aplicando essas boas práticas:

// Captura a resposta e já transforma tudo para letras minúsculas
let diaDaSemana = prompt('Qual é o dia da semana?').toLowerCase();

// Agora testamos tudo em minúsculo, aceitando com ou sem acento usando o operador OU (||)
if (diaDaSemana == 'sábado' || diaDaSemana == 'sabado' || diaDaSemana == 'domingo') {
    alert('Bom fim de semana!');
} else {
    alert('Boa semana!');
}

O que mudou aqui?

  • .toLowerCase(): Se o usuário digitar "SÁBADO", "Sabado" ou "sAbAdO", o JavaScript vai transformar o texto internamente para "sábado" ou "sabado" antes de fazer o teste do if. Isso elimina 50% dos erros de digitação.
  • **Operador ||**: Em vez de criar vários else if longos, nós agrupamos as condições na mesma linha. O computador lê isso como: "Se o dia for 'sábado' OU se for 'sabado' OU se for 'domingo', execute o primeiro bloco".

Com essa pequena adaptação, o seu programa fica muito mais inteligente e preparado para lidar com a forma natural como as pessoas digitam no dia a dia.

Espero que possa ter lhe ajudado!