4
respostas

Usei em um dos parâmetros da função condicional "if" a codificação (18.5 <= imc < 35) a qual é diferente do que foi mostrado na vídeo-aula. Esta codificação pode ser usada?

<meta charset="UTF-8">

<script>

    function pulaLinha() {

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

    function mostra(frase) {

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

    function calculaimc (peso, altura) {

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

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

    var imc = calculaimc (pesoInformado, alturaInformada);
    mostra (nome + ", o seu IMC é " + Math.round(imc));

    if(imc < 18.5) {
        mostra("Seu peso está abaixo do recomendado!");
    }

    if(imc > 35) {
        mostra("Seu peso está abaixo do recomendado!");
    }

    if(18.5 <= imc < 35) {
        mostra("Seu peso está entre o ideal recomendado!");
    }

</script>

<h3> FIM!!! </h3>
4 respostas

Olá Douglas, tudo certo?

Cola o código aqui para vermos como que ele está. Clica no botão inserir código e coloca ele.

Hi All!!

Também tive essa ideia, pelo uso no excel. Com os testes está OK, mas gostaria de saber se é usual na programação ou prefere-se o &&. Tks Abaixo o código utilizado.

<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 Math.round(peso / (altura * altura));
}

var nome = prompt("Informe o seu nome");
var alturaInformada = prompt(nome + ", informe sua altura. Use ponto em vez de virgula!");
var pesoInformado = prompt(nome + ", informe seu peso. Use ponto em vez de virgula!");

var imc = calculaImc(alturaInformada, pesoInformado);

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

if (18.5 <= imc <= 35 ) {
mostra("Seu IMC está adequado");
}

if (imc > 35 ) {
mostra("Seu IMC está acima do recomendado");
}

if (imc < 18.5) {
mostra("Seu IMC está abaixo do recomendado");
}

</script>

Oi, Gilmar e Douglas, tudo bem?

Não há problema em fazer da forma como vocês fizeram. Ela está correta e funciona. O professor usou o operador && para demonstrar como se utiliza ele e também por elimina um if o que é interessante. Mas lembrem-se que na programação há várias formas de resolver um problemas, vocês resolveram de uma forma diferente e chegeram no mesmo resultado.

Parabéns e bons estudos!

Boa noite, pessoal! Como vão?

Na realidade o que aparentemente ocorreu com vcs foi um falso positivo. Façam um teste rapidamente executando o código a seguir.

<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 Math.round(peso / (altura * altura));
    }

    var imc = 15;

    mostra("O seu IMC é " + imc);

    if (18.5 <= imc <= 35) {
        mostra("Seu IMC está adequado");
    }

    if (imc > 35) {
        mostra("Seu IMC está acima do recomendado");
    }

    if (imc < 18.5) {
        mostra("Seu IMC está abaixo do recomendado");
    }

</script>

Vcs verão que a saída dirá que o IMC está adequado para logo em seguida dizer que está abaixo do recomendado. E isso claramente não está correto! Portanto, o ideal é que vcs utilizem mesmo o operador lógico &&.

Qualquer coisa é só falar!

Grande abraço e bons estudos a todos!