1
resposta

Aula 7 - Melhorando programa do IMC - Utilização do "if" com 2 parâmetros

Na aula 7 - Melhorando programa do IMC, utilizei outras 2 formas diferentes do que o professor usa no curso, para considerar maior ou igual e menor ou igual, ao invés de utilizar o "&&", consegui utilizar também só colocando vírgula (,) e também colocando apenas um "&", todas essas formas funcionaram, por convenção, qual seria a ideal?

if(imc >= 18.5 & imc <= 35) if(imc >= 18.5 && imc <= 35) if(imc >= 18.5, imc <= 35)

Está na linha 54 o jeito que deixei:

<meta charset="utf-8">

<script>

function pulaLinha() {
    document.write("<br>");
    document.write("<br>");
}

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

function calculaImc(altura, peso) {

    // var imc = peso / (altura * altura);
    return peso / (altura * altura);

}

    var pesoAndre = 73;
    var alturaAndre = 1.73;
    var imcSimao = calculaImc(1.73, 73);
    // var imcAndre = pesoAndre / (alturaAndre * alturaAndre);

    // mostra("O IMC do André é: " + Math.round(imcAndre));

    var pesoAmigo = 68;
    var alturaAmigo = 1.72;
    var imcAmigo = calculaImc(1.72, 68);
    // var imcAmigo = pesoAmigo / (alturaAmigo * alturaAmigo);

    // mostra("O IMC do meu amigo é: " + Math.round(imcAmigo));

    var nome = prompt("Informe o seu nome");
    var alturaIformada = prompt (nome + ", informe sua atura");
    var pesoInformado = prompt (nome + ", informe seu peso");

    var imc = calculaImc (alturaIformada, pesoInformado);

    mostra(nome + ", o seu IMC é " + imc);

    if(imc < 18.5) {

        mostra("Você está abaixo do recomendado");
    }

    if(imc > 35) {

        mostra("Você está acima do recomendado");
    }

    if(imc >= 18.5 & imc <= 35) {

        mostra("Seu IMC está excelente!");
    }

</script>
1 resposta

Boa noite, André!

Não sei se é o caso do javascript, mas os operadores & e && existem na linguagem C e possuem funções parecidas, mas diferentes.

&& - AND lógico [ 1100 && 1100 --> True]
& - faz uma comparação AND bit a bit [1011 & 1010 --> 1110]

Novamente, na linguagem C funciona dessa forma, não sei no javascript é parecido.

Pode ser que para este caso específico funcione sem problemas, mas tem que prestar atenção em outras circunstâncias.

Sobre a vírgula, estranho não ter dado erro. É bom verificar se a vírgula tem alguma outra finalidade.