1
resposta

Excelente explicação sobre condições do <script>

Quero compartilhar o meu cálculo de IMC que tentei fazer

<meta charset="UTF-8">
<script>
    function pulaLinha() {
        document.write("<br>");
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    function calculaImc(altura, peso) {

        return peso / (altura * altura);
    }

    alert ("Vamos calcular o seu IMC!");
    var nome = prompt("Informe o seu nome: ");
    var alturaInfomada = prompt(nome + ", informe a sua altura: (Use ponto ex: 1.80)");
    var pesoInformado = prompt(nome + ", informe o seu peso: ");

    var imc = calculaImc(alturaInfomada, pesoInformado);
    //alert(nome + ", o seu IMC é: " + imc)
    //document.write(nome + ", o seu IMC é: " + imc);
    alert("Condições do IMC para peso: " + "\n" + "-MENOR QUE 18,5 = MAGREZA" + "\n"+ "-ENTRE 18,5 E 24,9 = NORMAL"+ "\n"+"-ENTRE 25,0 E 29,9 = SOBREPESO"+ "\n"+"-ENTRE 30,0 E 39,9 = OBESIDADE" + "\n"+"-MAIOR QUE 40,0 = OBESIDADE GRAVE");

    if (imc <= 18.5) {
    alert(nome + "seu IMC é " + imc + "e está muito abaixo, MAGREZA.")
    }    

    if (imc >18.5 && imc <=24.9) {
    alert(nome + " o seu IMC é " + imc + "\n" + "e está NORMAL.")
    }

    if (imc >=25.0 && imc <=29.9 ) {
    alert(nome + " o seu IMC é " + imc + "\n" + " e você está na faixa de SOBREPESO.")
    }

    if (imc >=30.0 && imc <=39.9 ) {
    alert(nome + " o seu IMC é " + imc + "\n" + " e você está na faixa de OBESIDADE!!")
    }

    if (imc >=40.00) {
    alert(nome + " o seu IMC é " + imc + "\n" + " e você está na faixa de OBESIDADE GRAVE!!")
    }

    alert("Continue se cuidando. Fim!");


</script>
1 resposta

Olá Rafael, tudo bem?

Excelente, fico feliz que conseguiu realizar a atividade proposta.

Seu codigo está organizado e fácil de visualizar.

Notei que para guiar o usuário a escrever sua altura com ponto ao invés de vírgula, já que neste caso daria NaN, você escreveu ", informe a sua altura: (Use ponto ex: 1.80)"); . Uma outra forma de fazer isso sem que haja dependência do usuário fazer corretamente, que deixaria o programa um pouco mais automatizado nesse ponto do código, seria utilizando o método replace, que tem como função retornar uma nova string com algumas ou todas as correspondências substituídas por um determinado caractere (ou caracteres), neste caso substituiremos a vírgula pelo ponto.

O código ficará assim:var alturaInfomada = prompt(nome + ", informe a sua altura: ").replace(',', '.');

Dessa forma, caso o usuário digite a altura com vírgula, ela será transformada em ponto e não dará erro.

Espero ter ajudado, em caso de dúvidas fique a vontade para perguntar. Bons estudos!