Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Lista de exercícios JavaScript

Olá, pessoal!

Para a realização deste exercício, eu utilizei uma função para pegar automaticamente o horário e retornar ao usuário a saudação correta. Peguei no StackOverflow, mais ainda tenho dúvidas sobre o funcionamento. Quem puder me dar alguma orientação sobre essa função, ficarei muito agradecido!

Segue código completo:

// 1. Verificação de idade para compra de bebida
ps = require("prompt-sync")
const prompt = ps()
let idade = prompt('Digite a sua idade:')

if (idade >= 18) {
    console.log('Pode comprar bebida alcoólica.')
} else {
    console.log('Não pode comprar bebida alcoólica.')
}

// 2. Saudação de acordo com a hora
function novaHora() { //função para pegar a hora atual e formatar com dois dígitos 
    function pad(s) {
        return (s < 10) ? '0' + s : s;
    }
    var date = new Date();
    return [date.getHours(), date.getMinutes()].map(pad).join(':');
}
if (novaHora() < '12:00') {
    console.log('Bom dia!')
} else if (novaHora() < '18:00') {
    console.log('Boa tarde!')
} else {
    console.log('Boa noite!')
}

// 3. Verificação de número positivo ou negativo
let numero = prompt('Digite um número:')
if (numero < 0) {
    console.log('o número é negativo.')
} else if (numero > 0) {
    console.log('o número é positivo.')
} else {
    console.log('o número é zero.')
}

// 4. Conversão de nota em conceito
let nota = prompt('Digite a nota do aluno (0 a 10):')
if (nota >= 9) {

    console.log("Conceito A");
} else if (nota >= 8) {
    console.log("Conceito B");

} else if (nota >= 6) {

    console.log("Conceito C");

} else if (nota >= 4) {

    console.log("Conceito D");

} else {

    console.log("Conceito E");

}
// 5. Número par ou ímpar com ternário
let numero2 = prompt('Digite um número:')
numero2 % 2 === 0 ? console.log('O número é par.') : console.log('O número é ímpar.')

// 6. Menu com switch-case
let menu = prompt('Escolha uma opção:\n1 Cadastrar\n2 listar\n3 sair\n ')
switch (menu) {
    case '1':
        console.log('Opção Cadastrar selecionada.')
        break;
    case '2':
        console.log('Opção Listar selecionada.')
        break;
    case '3':
        console.log('Opção Sair selecionada.')
        break;
    default:
        console.log('Opção inválida.')
}
 
// 7. Validação de campo obrigatório
let email = ""
if (email === "") {
    console.log("O campo de e-mail é obrigatório.");
}else {
    console.log("E-mail informado: " + email);
}
// 8. Validação de senha segura
let senha = "Mauriciolindão123";
let senhaValida = true;

if (senhaValida) {
  console.log("Senha válida");
} else {
  console.log("Senha muito curta");
}
// 9. Compra com saldo
let saldoDisponivel = 1000
let valorCompra = 1200
if (valorCompra <= saldoDisponivel) {
    console.log("Compra realizada com sucesso!");
} else {
    console.log("Saldo insuficiente para realizar a compra.");
}
// 10. Validação de formulário completo
let nome = "Mauricio"
let email = "Mauricio123@gmail.com"
let senha2 = "Mauriciolindão123"
if (nome === "" || email === "" || senha2 === "") {
    console.log("Todos os campos são obrigatórios.");
} else {
    console.log("Formulário completo e válido.");
}
1 resposta

Olá, Mauricio! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou a função Date para capturar o horário com JavaScript, utilizou muito bem o switch-case para estruturar o menu de opções e ainda compreendeu a importância da validação de entradas para garantir consistência nos resultados. Esse conjunto de práticas mostra atenção aos detalhes e domínio dos fundamentos da linguagem.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é comparar diretamente números em vez de strings ao verificar horários. Assim:

if (new Date().getHours() < 12) {
    console.log("Bom dia!");
} else if (new Date().getHours() < 18) {
    console.log("Boa tarde!");
} else {
    console.log("Boa noite!");
}

Isso faz a comparação ser mais precisa e evita problemas de interpretação de strings como '12:00'.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Funções reutilizáveis: criar funções genéricas para validações comuns.
  • Tratamento de erros: adicionar verificações para entradas inválidas ou inesperadas.
  • Conversão de tipos: garantir que valores vindos do prompt sejam tratados como números.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Ah, uma pergunta: Você acha mais interessante evoluir esse projeto criando funções reutilizáveis para cada validação ou manter tudo centralizado no main para maior simplicidade inicial?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!