1
resposta

[Projeto] Lista de exercicios 3

Ola, boa tarde.
Segue minha lista de exercicios, tentei testar bastante para aprender mais e ver se não dava erro.

// Lista de exercícios 3
// 1 - Verificação de idade para compra de bebida
const idade = 15 // Teste 1 - menor de idade;
//const idade = 35 // Teste 2 - maior de idade;

if (idade >= 18) {
    console.log('Pode comprar bebida alcoólica.');
} else {
    console.log('Venda proibida para menores de 18 anos.');
}


// 2 -  Saudação de acordo com a hora
const horaAtual = 2 // Teste noite;
//const horaAtual = 15 // Teste tarde;
//const horaAtual = 9 // Teste dia;

if (horaAtual >= 6 && horaAtual < 12) {
    console.log('Bom dia!');
} else if (horaAtual >= 12 && horaAtual < 18) {
    console.log('Boa tarde!');
} else {
    console.log('Boa noite!');
}


// 3 - Verificação de número positivo ou negativo
const numero = -4 //Teste negativo;
//const numero = 0 //Teste zero;
//const numero = 6 //Teste positivo;

if (numero < 0) {
    console.log('Negativo');
} else if (numero === 0) {
    console.log('Zero');
} else {
    console.log('Positivo');
}


// 4. Conversão de nota em conceito
const notaDoAluno = 9.45 // Teste A;
//const notaDoAluno = 8.9 // Teste B;
//const notaDoAluno = 6.3 //Teste C;
//const notaDoAluno = 5.1 //Teste D;
//const notaDoAluno = 0.8 //Teste E;

if (notaDoAluno >= 9) {
    console.log('A');
} else if (notaDoAluno >= 8) {
    console.log('B');
} else if (notaDoAluno >= 6) {
    console.log('C');
} else if (notaDoAluno >= 4) {
    console.log('D');
} else {
    console.log('E');
}


// 5 - Número par ou ímpar com ternário
const num = 6 //teste par;
//const num = 3 //teste impar;
num % 2 === 0 ? console.log('Par') : console.log('Impar');
//num % 2 === 0 ? 'Par' : 'Impar'; // reduzir a expressão

// 6 - Menu com switch-case
const opcao = 2;
switch (opcao) {
    case 1:
        console.log('Cadastrar');
        break
    case 2:
        console.log('Listar');
        break
    case 3:
        console.log('Sair');
        break
    default:
        console.log('opção inválida');
        break
}

// 7 - Validação de campo obrigatório
const email = '' //teste sem email;
//const email = 'go@gmail.com' //teste com email;
if (email === ""){
    console.log('Preencha o campo de e-mail');
} else {
    console.log('E-mail válido');
}

//Truthy e falsy
// if (email) {
//     console.log('E-mail válido');
// } else {
//     console.log('Preencha o campo de e-mail');
// }


// 8 - Validação de senha segura
const senha = 87654;
const senhaValida = true //teste true;
// const senhaValida = false //teste false;

if (senhaValida) {
    console.log('Senha válida');
} else {
    console.log('Senha muito curta');
}

// 9 - Compra com saldo
const saldoDisponivel = 500.00;
const valorCompra = 89.50;

if (saldoDisponivel >= valorCompra) {
    console.log('Compra aprovada');
} else {
    console.log('Saldo insuficiente');
}

// 10 - Validação de formulário completo
const nome = 'Carlos';
const email2 = 'carlos@gmail.com';
const idade2 = 64;
const formularioValido = true;

if (formularioValido) {
    console.log('Formulário enviado com sucesso');
} else {
    console.log('Por favor, preencha todos os campos corretamente');
}
1 resposta

Olá, Stephanie. Como vai?

Parabéns pela dedicação em testar diversos cenários! Essa é, sem dúvida, a melhor forma de fixar os conceitos de lógica de programação. Seu código está muito bem estruturado e você demonstrou entender perfeitamente como funcionam as estruturas condicionais if/else, switch-case e até o operador ternário.

Gostaria de destacar alguns pontos muito positivos e deixar algumas dicas para elevar ainda mais o nível dos seus scripts:

Pontos Fortes do seu Código

  • Lógica de Intervalos: No exercício da saudação (item 2), você utilizou corretamente os operadores lógicos && (E) para definir faixas de horário. Isso evita que uma condição "atropele" a outra.
  • Encadeamento de Condições: No sistema de notas (item 4), a ordem decrescente que você escolheu está perfeita. Em estruturas de else if, o código para na primeira condição verdadeira que encontrar, e sua lógica respeitou isso com precisão.
  • Comentários e Testes: Manter os valores de teste comentados ajuda muito na hora de debugar o código.

Dicas de Boas Práticas e Evolução

1. Operador Ternário (Item 5)
Você deixou um comentário interessante sobre "reduzir a expressão". Na comunidade JavaScript, o ternário é geralmente usado para retornar um valor para uma variável, e não apenas para executar um comando. Veja a diferença:

// Da forma que você fez (Executando comando)
num % 2 === 0 ? console.log('Par') : console.log('Impar');

// Forma comum em projetos reais (Atribuindo valor)
const resultado = num % 2 === 0 ? 'Par' : 'Ímpar';
console.log(resultado);

2. Truthy e Falsy (Item 7)
Notei que você comentou sobre Truthy e Falsy. Esse é um conceito poderoso no JavaScript! No caso do e-mail, uma string vazia "" já é considerada "falsa". Portanto, sua validação comentada é considerada mais "limpa" e idiomática:

if (!email) { 
    // O '!' inverte o valor. Se o e-mail for vazio (falsy), vira true e entra aqui.
    console.log('Preencha o campo de e-mail');
}

3. Organização com Switch Case (Item 6)
Excelente uso do break. Um erro comum de quem está começando é esquecer o break, o que faz o código executar todos os casos abaixo do escolhido. Você acertou em cheio!

4. Comparação de Tipos (Item 8)
No exercício da senha, você validou um booleano senhaValida. Como sugestão de próximo passo, tente validar o tamanho real da string usando a propriedade .length:

if (senha.toString().length >= 8) {
    console.log('Senha válida');
} else {
    console.log('Senha muito curta (mínimo 8 caracteres)');
}

Continue com esse hábito de testar limites e valores diferentes (como números negativos, zeros ou campos vazios), pois isso é o que diferencia uma boa pessoa desenvolvedora de software.

Espero que possa ter lhe ajudado!