Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Desafio: Trabalhando com condicionais

console.log ('Starting desafiologica1.js')
let porcentagemDesconto = 0; // Definido valor fixo de desconto
let quantidadeMilhas = prompt ('Por favor, informe sua quantidade de milhas: ') // Solicitado quantidade de milhas para comparação

// Validação de números incompatíveis
if (quantidadeMilhas < 0) {
    alert ('Por favor insira um número válido')
}

// Primeira condicional, pessoas com uma quantidade de milhas superior a 5.000, mas inferior a 30.000, recebem 10% de desconto.
if(quantidadeMilhas > 5000){
    porcentagemDesconto = porcentagemDesconto + 10;
     console.log (`O usuário adquiriu ${porcentagemDesconto}% de desconto.`)
}

// Segunda condicional, pessoas com uma quantidade de milhas igual ou superior a 30.000 recebem 20% de desconto.
if(quantidadeMilhas >= 30000){
    porcentagemDesconto = porcentagemDesconto + 10;
    console.log (`O usuário adquiriu ${porcentagemDesconto}% de desconto.`)
}

// Alerta de quantidade de desconto
if (quantidadeMilhas > 5000) {
    alert (`Você possui ${porcentagemDesconto}% de desconto.`)
} else {
    alert ('Infelizmente você não possui milhas suficiente para um desconto, continue movimentando sua conta para adquirir mais milhas.')
}

Na resposta do desafio a solução aparece de forma diferente, dizendo que eu deveria utilizar de um bloco if dentro do bloco else. Porém, minha solução foi diferente, fiz uma espécie de somatório de descontos, o que talvez não seja ideal. Estou com dificuldades de encontrar uma solução como proposta na resolução da atividade.

1 resposta
solução!

Sua solução funciona, mas como você mesmo observou, ela não segue exatamente o que foi proposto, provavelmente porque o desafio pedia uma estrutura encadeada com if...else if...else, o que evita esse "somatório" de descontos.

Solução recomendada com if...else if...else: A lógica esperada pelo desafio é mais clara e mutuamente exclusiva, ou seja, o usuário só pode se encaixar em uma das faixas de desconto:


console.log('Starting desafiologica1.js');
let porcentagemDesconto = 0;
let quantidadeMilhas = prompt('Por favor, informe sua quantidade de milhas: ');

// Convertendo para número
quantidadeMilhas = Number(quantidadeMilhas);

// Validação
if (quantidadeMilhas < 0 || isNaN(quantidadeMilhas)) {
    alert('Por favor insira um número válido');
} else {
    if (quantidadeMilhas >= 30000) {
        porcentagemDesconto = 20;
    } else if (quantidadeMilhas > 5000) {
        porcentagemDesconto = 10;
    } else {
        porcentagemDesconto = 0;
    }

    if (porcentagemDesconto > 0) {
        console.log(`O usuário adquiriu ${porcentagemDesconto}% de desconto.`);
        alert(`Você possui ${porcentagemDesconto}% de desconto.`);
    } else {
        alert('Infelizmente você não possui milhas suficiente para um desconto, continue movimentando sua conta para adquirir mais milhas.');
    }
}