3
respostas

Código diferente do professor, porém a sintaxe também funciona. Por que ?

Sei que pode parecer algo besta pq está funcionando, mas gostaria de saber o por quê funciona. Pode ser que essa duvida me ajude mais pra frente. Nas condições de if, o professor separou elas em blocos usando {} para que o código imprimisse no html somente uma condição. No meu caso eu tentei fazer antes que o professor explicasse como seria feito essa condição pois ja tinha visto na imersaoDev como esse if funciona, e nao usei os {} e funcionou do mesmo jeito. pq ? `

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

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

    var vitoriasAnoAnterior = parseInt(prompt("Digite a quantidade de vitorias do seu time no ano anterior"))
    var empatesAnoAnterior = parseInt(prompt("Digite a quantdade de empates do seu time no ano anterior"))
    var totalPontosAnoAnterior = vitoriasAnoAnterior * 3 + empatesAnoAnterior

    mostra("A quantidade de pontos do seu time no ano anterior é: " + totalPontosAnoAnterior)

    var vitorias = parseInt(prompt("Digite o numero de vitórias do seu time"))
    var empates = parseInt(prompt("Digite o numero de empates do seu time"))
    var totalPontos = vitorias * 3 + empates

    mostra("A quantidade de pontos do seu time é :" + totalPontos)


    if(totalPontos > totalPontosAnoAnterior)
      mostra("o seu time este ano, está com mais pontos que o ano passado")

    if(totalPontos < totalPontosAnoAnterior)
      mostra("o seu time no ano passado esta com mais pontos que o ano atual")

    if(totalPontos == totalPontosAnoAnterior)
      mostra("seu time neste ano e no ano anterior, marcou a mesma quantidade de pontos")

    mostra("fim")

</script>   `
3 respostas

Vamos lá: a função das chaves na maioria das linguagens de programação derivadas do C (menos a gracinha da Python) é abrir e fechar um bloco de código. Mas o que é, enfim, isso?

Um bloco de código é um conjunto de mais de uma instrução. Então, por padrão, instruções como o if, for ou while englobarão apenas a próxima instrução ou o próximo bloco. O seu código é um bom exemplo disso. Se, por outro lado, nós tivéssemos a seguinte situação:

if(totalPontos > totalPontosAnoAnterior)
    mostra("o seu time este ano, está com mais pontos que o ano passado")
    maisPontos = true

isto não iria funcionar como esperado, porque a segunda linha sempre iria ser executada. Para que isso funcionasse corretamente seria necessário incluir as duas instruções dentro de um bloco que seria executado, neste caso, se a condição fosse satisfeita, assim:

if(totalPontos > totalPontosAnoAnterior) {
    mostra("o seu time este ano, está com mais pontos que o ano passado")
    maisPontos = true
}

Em resumo: o uso das chaves é necessário se você quiser juntar mais de uma instrução num bloco de código. No seu caso, como havia apenas uma instrução, o programa funciona bem.

Leanro Ferreira vc poderia me ajudar amigo?

é aprimeira vez q vejo programação e acho q me escapou algo p linkar o raciociniio do todo.. portanto poderia me explicar o q falta neste código q tentei criar?

Janela de testes

Me adiciona no LinkedIn e me chama pra conversar sobre isso. O link tá no meu perfil. É se você não tiver LinkedIn, faça, independente de sua idade! Todo mundo precisa dele!