1
resposta

Segundo Desafio concluido! (com uma dúvida)

//5) Peça ao usuário para inserir seu nome usando prompt. //Em seguida, mostre um alerta de boas-vindas usando esse nome.

let nome = prompt ('Digite o seu nome')
alert (`Bem vindo ${nome} ao site de perguntas e respostas`);

//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!".

let diaDaSemana = prompt ('Digite o dia da semana de Domingo a   Sábado');
 if (diaDaSemana == 'Sábado' | diaDaSemana == 'Domingo') {
alert ('Bom fim de semana!')
   } else if (diaDaSemana == 'Segunda '| diaDaSemana =='Terça' |           diaDaSemana == 'Quarta' | diaDaSemana == 'Quinta' |            diaDaSemana == 'Sexta') {
 alert ('Boa semana!')
   } else {
     alert ('Dia da semana inválido')
}

//2) Verifique se um número digitado pelo usuário é positivo ou negativo. Mostre um alerta informando.

 let numero = prompt ('Digite um número (positivo ou negativo)');
   if (numero >= 0) {
        alert ('Numero positivo')
   } else { 
        alert ('Número negativo') 
   }

//3) Crie um sistema de pontuação para um jogo. Se a pontuação for maior ou igual a 100, mostre "Parabéns, você venceu!". // Caso contrário, mostre "Tente novamente para ganhar.".

  let pontuacao = prompt ('Digite a pontuação do jogo');
     if (pontuacao >= 100) {
          alert ('PARABÉNS!!  Você venceu!')
       } else { 
          alert ('Tente novamente para ganhar.') 
       }

//4) Crie uma mensagem que informa o usuário sobre o saldo da conta, //usando uma template string para incluir o valor do saldo.

 let saldo = 800;
     alert (`Seu saldo é de: R$${saldo}` )

Fiz o desafio só fiquei na dúvida em relação ao uso do toLowerCase() pois, fui tentar utilizá-lo mas, nada mudou assim não sei se fiz corretamente: coloquei desta maneira: if (diaDaSemana.toLowerCase() == 'Sábado' | diaDaSemana.toLowerCase() == 'Domingo') { E mesmo assim ele diz que o dia está inválido pois, coloquei esta condição também. O que estou fazendo de errado. E outra dúvida coloquei na condição sábado com acento tem uma maneira de se digitar com ou sem acento ele aceitar a palavra?

obrigada

1 resposta

Olá, Alexandra, como vai?

Seu código está bem estruturado e atende aos desafios propostos. Sobre o toLowerCase(), o problema está no fato de que ele transforma toda a string em letras minúsculas, mas você está comparando com palavras que começam com maiúsculas, como "Sábado". Para funcionar corretamente, o ideal é comparar com as palavras todas em minúsculas, assim:

if (diaDaSemana.toLowerCase() == 'sábado' || diaDaSemana.toLowerCase() == 'domingo') {
    alert('Bom fim de semana!');
}

Além disso, perceba que na sua comparação você usou um único |, mas em JavaScript para operadores lógicos é necessário || para representar "ou".

Sobre o uso de acentos, uma forma de permitir que o usuário digite com ou sem acento é remover os acentos antes da comparação. Você pode fazer isso utilizando normalize():

function removerAcentos(texto) {
    return texto.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
}

let diaDaSemana = prompt('Digite o dia da semana');
let diaNormalizado = removerAcentos(diaDaSemana.toLowerCase());

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

A função normalize("NFD").replace(/[\u0300-\u036f]/g, "") é usada para remover acentos e diacríticos de caracteres. Sendo que:

  • normalize("NFD"): Converte os caracteres acentuados para uma forma decompositiva, onde a letra e o acento são representados separadamente. Por exemplo, "é" se transforma em "e" + "´".
  • replace(/[\u0300-\u036f]/g, ""): Remove os caracteres que representam acentos e diacríticos da string, deixando apenas as letras.

Isso vai permitir que o usuário escreva "Sabado" ou "Sábado" e ambas as opções sejam aceitas.

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)