2
respostas

Condicional não está funcionando.

Bom dia. Vocês conseguiriam me informar qual o defeito no meu código? Pois fiz um condicional, porém na tela aparece os dois caminhos em vez de um apenas um deles.

<meta charset="UTF-8">
<h1> .................................................... Gasolina ou Álcool? ....................................................... </h1>

<script>

    function pularLinha() {

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

    function escrever(texto) {

        document.write(texto);
    }

    var KmComGasolina = 480;
    var KmComAlcool = 320;
    var litros = 40;
    var preçoGasolinaSC = 5.09
    var preçoAlcoolSC = 4.62
    var valorGastoTanqueGasolina = (litros * preçoGasolinaSC);
    var valorGastoTanqueAlcool = (litros * preçoAlcoolSC);
    var gastoPorKMGasolina = (KmComGasolina / valorGastoTanqueGasolina);
    var gastoPorKMAlcool = (KmComAlcool / valorGastoTanqueAlcool);

    if (gastoPorKMGasolina < gastoPorKMAlcool); {

        pularLinha();
        pularLinha();
        escrever("<h3>" + "Através dos dados obtidos, podemos constatar que no estado de Santa Catarina é melhor utilizar a gasolina do que o álcool!" + "</h3>" );

    }    
    if (gastoPorKMGasolina > gastoPorKMAlcool); {

        pularLinha();
        pularLinha();
        escrever("<h3>" + "Através dos dados obtidos, podemos constatar que no estado de Santa Catarina é melhor utilizar a álcool do que o gasolina!" + "</h3>" );
    }
    if (gastoPorKMGasolina = gastoPorKMAlcool); {

        pularLinha();
        pularLinha();
        escrever("<h3>" + "Através dos dados obtidos, podemos constatar que no estado de Santa Catarina pode ser utilizado tanto lcool como gasolina!" + "</h3>" );
    }
</script>

O foco seria apenas nos "ifs". Poderiam me ajudar?

2 respostas

Fala Shaian, tudo certo?

Isso acontece por dois motivos:

Após os comando condicionais

if(condicao);{
}

Tem um ponto e vírgula, que determina o fim da instrução, seguido de um bloco de código que não faz parte do condicional, e portanto é executado de qualquer maneira, para corrigir, basta retirar os pontos e vírgulas após os condicionais, dessa maneira:

if(condicao){
}

Após isso, você provavelmente ainda vai encontrar um errinho porque no terceiro condicional:

if (gastoPorKMGasolina = gastoPorKMAlcool)

A comparação está sendo feita com o operador =, que é um operador de atribuição e não de comparação, que é o == para esse caso. Para conhecer melhor os operadores condicionais indico a leitura do artigo sobre condicionais em JavaScript!

Com essas duas alterações, seu código deve apresentar o comportamento desejado; é muito comum quando estamos iniciando em uma nova linguagem acontecer esse tipo de erro, então não se preocupe, faz parte do aprendizado! =)

Um grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Deu Certo!

Muito Obrigado, o == realmente tinha tirado sem querer na edição, mas o ponto e vírgula não lembrava/sabia desse detalhe haha