Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Pequeno erro If e else

Estou com uma certa dúvida, ao jogar esse código funciona normalmente, porém a última mensagem exibida sempre aparece "Não existe copa antes deste ano.", e se eu coloco 1930 ao invés de anocopa funciona normalmente, agora porque se apliquei a variável anocopa=1930 ?

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

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }
    var limite = parseInt(prompt("Qual é o ano que você está?"))
    var anocopa = 1930
    while (anocopa <= limite) {
        mostra("Teve copa no ano de ... " + anocopa)
        anocopa= anocopa + 4

    } 

    if (anocopa <= limite){
        mostra("Esse foi o limite de copas... ")
    } else { (anocopa < limite)
        mostra("Não existe copa antes deste ano.")
    }
</script>```
1 resposta
solução!

Faalaa aí Jonathan, tudo tranquilo?

Isto está acontecendo porque a variável anocopa está saindo do laço while com 4 unidades a mais. Observe este caso:

  • 2018 <= 2020 ? Sim. Então irá entrar no while e acrescentar +4 na variável anocopa. Daí ele verá:
  • 2022 <= 2020 ? Não. Então ele sairá do while e fará a verificação(no if)
  • 2022 <= 2020 ? Não. Por isto ele está entrando sempre no else que diz que não existe copa antes daquele ano. Pegou a ideia?

Para corrigir isto, podemos fazer uma verificação para subtrair estas quatro unidades quando passar do valor limite, que é o ano atual.

if(anocopa> limite){
        anocopa = anocopa - 4
}

Agora seu código irá apresentar o resultado que você espera. Tente esta alternativa.

Qualquer dúvida estou a disposição. Espero ter ajudado. Bons estudos!!!