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

Uso do else

Pessoal, alterei o código da aula usando o else e deu certo. Porém, vi em outros tópicos que isso não é o correto a ser feito... então, quando o uso do else if é uma boa prática?

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

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

    function calculaImc(altura, peso) {

        return peso / (altura * altura);
    }

    var nome=prompt("Informe o seu nome");
    var alturaInformada=prompt(nome+", informe a sua altura");
    var pesoInformado=prompt(nome+", informe o seu peso");
    var imc=calculaImc(alturaInformada,pesoInformado);

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

    if (imc<18.5) {
        mostra("Você está abaixo do peso.");
    } else if (imc>35) {
        mostra("Você está acima do peso.");
    } else if (imc>=18.5&&imc<=35) {
        mostra("Você está no peso ideal.");
    }

</script>
3 respostas

Analisando o seu código, acredito que você errou na ordem dos elses, das condições

if (imc<18.5) {
        mostra("Você está abaixo do peso.");
    }
else if (imc>=18.5&&imc<=35) {
        mostra("Você está no peso ideal.");
    }
 else {
        mostra("Você está acima do peso.");
    } 

se fizer assim provavelmente vai funcionar. O else é usado, quando nenhuma das condições anteriores te atendem, ele não tem condição.

Então Lucas, minha dúvida é que esse meu código funcionou para mim, mesmo com as condições não estando na ordem correta...

solução!

Ele vai funcionar por que todas as condições estão atendendo, qualquer o número que colocar ele vai entrar em uma condição, você pode usar o else if quando quiser contemplar mais de uma condição, exemplo informando a idade queremos saber se é criança 0 à 10 anos adolescente 11 à 17 adulto 18 à 60 e idoso maior que 60

if(idade <= 10){
    console.log('criança');
}
else if(idade > 10 && idade < 18){
    console.log('adolescente');
}
else if(idade >= 18 && idade <= 60){
    console.log('adulto');
}
else{
    console.log('idoso');
}

acima é um exemplo do uso do else if com boa prática, se eu colocar no lugar do else um else if não faz sentido porque qualquer pessoa com mais de 60 anos vai ser idoso, seria tipo um valor Default, é o mesmo para o seu caso, se colocar na ordem correta, qualquer imc acima de 35 é considerado acima do peso, então não se faz a necessidade do else if