Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida sobre if, else if e else.

<meta charset="UTF-8">

<script>

function pulaLinha() {

    document.write("<br>");
}

function mostra(frase) {

    document.write(frase);
    pulaLinha();
}

function calculaImc (peso, altura) {

    return peso/(altura*altura);
}

mostra("<h1>Calcule Seu IMC!</h1>");

var nome = prompt("Informe o seu nome");
var pesoInformado = prompt(nome + ", informe seu peso!");
var alturaInformada = prompt(nome + ", informe sua altura! 'Ex: 1.65'");
var imc = calculaImc(pesoInformado, alturaInformada);

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


if(imc < 18.5) {

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

else if(imc > 35) {

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

else {

    mostra("Você está dentro do recomendado.");

    }


mostra("<br>Obrigado por calcular seu IMC conosco!");



</script>

Boa tarde, estou com dúvidas na parte final do meu código acima, posso fazer esse sistema de '' if, else if e else''? Ele está funcionando perfeitamente. Ou preciso fazer igual o trecho do código abaixo?

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!");

    }
3 respostas

Até onde eu sei nesse caso vai funcionar ambos, até pouco tempo atrás eu tinha essa mesma dúvida, mas corri atrás de descobrir isso e aprendi que a diferença é que quando se usa "if, if, if", o programa vai percorrer por todas as 3 condições, quando se usa if, else if e else, o programa percorre a primeira condição e se ele achar a condição como verdadeira ele automaticamente já elimina as outras condições else if e else e assim por diante. Se eu tiver explicado errado e alguém saiba outra resposta, por favor me corrija que vai estar me ajudando também.

Pode fazer sim, não tem problema. E quanto ao seu comentário Jean, está correto sim. Caso queiram se aprofundar a mais nessa discursão, podem ver os comentários neste link abaixo:

https://pt.stackoverflow.com/questions/41499/if-else-if-else-ou-if-if-if-quando-usar-qual-a-diferença

solução!

Você pode fazer igual o primeiro exemplo não tem problema mas nele você possui mais código que o nescessário que a principio não parece muita coisa mas no futuro é muito importante ter um código mais enxuto. Outro ponto de você fazer igual o primeiro exemplo é que ele tem uma verificação a menos ou seja ele não tem uma condição especifica apenas os if's e else's, já no segundo sim pois ele deve estar imc >= 18.5 && imc <= 35. Mas no mais está correto o primeiro código sim, e não tem problema deixar ele desse jeito