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

proposta de exercício pergunta: quantos anos vc tem de diferença da sua irmã?

Seguindo o estudo do livro: "Lógica de Programação" da editora : Casa do Código.

Foi porposto criar um código onde eu pergunto ao usuário: quantos anos vc tem de diferença da sua irmã?

<meta charset = 'UTF-8'>

<script>

    alert('quantos anos vc tem de diferença da sua irmã ?');

    let idadeIrma = parseInt(prompt('Primeiro, informe a idade da sua irmã'));
    let idadeUser = parseInt(prompt('Agora, informe a sua idade'));
    let diferençaIdades = Math.abs(idadeIrma - idadeUser);

    let palavraAno = diferençaIdades == 1 ? 'ano' : 'anos';

    if(diferençaIdades < 0){
        alert(`Vc e sua irmã tem ${diferençaIdades} ${palavraAno} de diferença.`);
        
    }else{
        alert(`Vc e sua irmã tem ${diferençaIdades} ${palavraAno} de diferença.`);
    }

    
</script>

a princípio eu estava com problemas, pois usava a string:

let diferençaIdades = (idadeIrma - idadeUser);

quando calculava resultados == -1 , eu tinha um problemas com a palavara "ano", pois ela vinha no plural, tentei a solução:

if(diferençaIdades < 0){
diferençaIdades = diferençaIdades * -1;
alert(`Vc e sua irmã tem ${diferençaIdades} ${palavraAno} de diferença.`);
}

Mas o problema persistiu... Aí me ocorreu que talvez existisse alguma função parecida com 'parseInt' , mas que ao invéz de me retornar números Inteiros ela me retornasse apenas números naturais... com uma rápida pesquisa descobri a função 'Math.abs' , que resolveu meu problema.

fiz a aplicação correta? existe algum outro meio mais eficaz de esse código executar essa mesma tarefa?

1 resposta
solução!

Olá!

Obrigada por compartilhar seu código. Você resolveu o problema corretamente ao usar a função Math.abs(). Ela transforma o valor negativo em positivo, o que é ideal para calcular a diferença de idades, já que a diferença deve sempre ser um número positivo.

Mas, o bloco if que você deixou com a verificação if(diferençaIdades < 0) não é necessário, já que Math.abs() já garante que o valor seja positivo. Você pode simplificar o código removendo essa verificação.

<meta charset = 'UTF-8'>

<script>
    alert('Quantos anos você tem de diferença da sua irmã?');

    let idadeIrma = parseInt(prompt('Primeiro, informe a idade da sua irmã'));
    let idadeUser = parseInt(prompt('Agora, informe a sua idade'));
    let diferençaIdades = Math.abs(idadeIrma - idadeUser);

    let palavraAno = diferençaIdades == 1 ? 'ano' : 'anos';

    alert(`Você e sua irmã têm ${diferençaIdades} ${palavraAno} de diferença.`);
</script>

Continue praticando.

Um abraço e bons estudos.