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

Por que uma parte do meu código não está funcionando?

É o seguinte. Quis ir um pouco mais além, e decidi inserir o ano que a pessoa tinha/vai ter em cada Copa do Mundo.

Mas um trecho do código simplesmente passa batido. A saber:

    while(anoCopa == anoNascimento + 1) {
        anoCopa = anoCopa + 4;
        exibe("Teve Copa do Mundo em " + anoCopa + ".");
        exibe("<br>");
        var minhaIdade = anoCopa - anoNascimento;
        exibe("E você tinha " + minhaIdade + " ano.");
        pulaLinha();
    }

Queria saber por quê isso está acontecendo. Aqui está o código na íntegra para rodar no navegador:

<meta charset="UTF-8">

<script>

    function pulaLinha()    {
        document.write("<br>");
        document.write("<br>");
    }

    function exibe(frase)    {
        document.write(frase);
    }

    var anoCopa = 1930;
    var anoNascimento = parseInt(prompt("Em que ano você nasceu?"));
    var anoAtual = parseInt(prompt("Em que ano estamos?"));

    while(anoCopa <= anoNascimento) {
        exibe("Teve Copa do Mundo em " + anoCopa + "." + "<br>" + "E você ainda não era nascido(a).");
        pulaLinha();
        anoCopa = anoCopa + 4;
    }

    while(anoCopa >= anoNascimento && anoCopa <= anoAtual) {
        anoCopa = anoCopa + 4;
        exibe("Teve Copa do Mundo em " + anoCopa + ".");
        exibe("<br>");
        var minhaIdade = anoCopa - anoNascimento;
        exibe("E você tinha " + minhaIdade + " anos.");
        pulaLinha();
    }

    while(anoCopa == anoNascimento + 1) {
        anoCopa = anoCopa + 4;
        exibe("Teve Copa do Mundo em " + anoCopa + ".");
        exibe("<br>");
        var minhaIdade = anoCopa - anoNascimento;
        exibe("E você tinha " + minhaIdade + " ano.");
        pulaLinha();
    }

    while(anoCopa >= anoAtual && anoCopa <= 2100) {
        exibe("Terá Copa do Mundo em " + anoCopa + ".");
        exibe("<br>");
        anoCopa = anoCopa + 4;
        var minhaIdade = anoCopa - anoNascimento;
        exibe("E você terá " + minhaIdade + " anos.");
        pulaLinha();
    }

    exibe("E é isso, muito obrigado.");

</script>
4 respostas

Não encontrei erro executei seu condigo e funcionou perfeitamente.

Segue retorno para ano de nascimento 1984 e ano atual 2020:

Teve Copa do Mundo em 1930. E você ainda não era nascido(a).

Teve Copa do Mundo em 1934. E você ainda não era nascido(a).

Teve Copa do Mundo em 1938. E você ainda não era nascido(a).

Teve Copa do Mundo em 1942. E você ainda não era nascido(a).

Teve Copa do Mundo em 1946. E você ainda não era nascido(a).

Teve Copa do Mundo em 1950. E você ainda não era nascido(a).

Teve Copa do Mundo em 1954. E você ainda não era nascido(a).

Teve Copa do Mundo em 1958. E você ainda não era nascido(a).

Teve Copa do Mundo em 1962. E você ainda não era nascido(a).

Teve Copa do Mundo em 1966. E você ainda não era nascido(a).

Teve Copa do Mundo em 1970. E você ainda não era nascido(a).

Teve Copa do Mundo em 1974. E você ainda não era nascido(a).

Teve Copa do Mundo em 1978. E você ainda não era nascido(a).

Teve Copa do Mundo em 1982. E você ainda não era nascido(a).

Teve Copa do Mundo em 1990. E você tinha 6 anos.

Teve Copa do Mundo em 1994. E você tinha 10 anos.

Teve Copa do Mundo em 1998. E você tinha 14 anos.

Teve Copa do Mundo em 2002. E você tinha 18 anos.

Teve Copa do Mundo em 2006. E você tinha 22 anos.

Teve Copa do Mundo em 2010. E você tinha 26 anos.

Teve Copa do Mundo em 2014. E você tinha 30 anos.

Teve Copa do Mundo em 2018. E você tinha 34 anos.

Teve Copa do Mundo em 2022. E você tinha 38 anos.

Terá Copa do Mundo em 2022. E você terá 42 anos.

Terá Copa do Mundo em 2026. E você terá 46 anos.

Terá Copa do Mundo em 2030. E você terá 50 anos.

Terá Copa do Mundo em 2034. E você terá 54 anos.

Terá Copa do Mundo em 2038. E você terá 58 anos.

Terá Copa do Mundo em 2042. E você terá 62 anos.

Terá Copa do Mundo em 2046. E você terá 66 anos.

Terá Copa do Mundo em 2050. E você terá 70 anos.

Terá Copa do Mundo em 2054. E você terá 74 anos.

Terá Copa do Mundo em 2058. E você terá 78 anos.

Terá Copa do Mundo em 2062. E você terá 82 anos.

Terá Copa do Mundo em 2066. E você terá 86 anos.

Terá Copa do Mundo em 2070. E você terá 90 anos.

Terá Copa do Mundo em 2074. E você terá 94 anos.

Terá Copa do Mundo em 2078. E você terá 98 anos.

Terá Copa do Mundo em 2082. E você terá 102 anos.

Terá Copa do Mundo em 2086. E você terá 106 anos.

Terá Copa do Mundo em 2090. E você terá 110 anos.

Terá Copa do Mundo em 2094. E você terá 114 anos.

Terá Copa do Mundo em 2098. E você terá 118 anos.

E é isso, muito obrigado.

Sem erro aqui também

Amigos, o erro persiste. @ElderSantana, segue aí o erro no seu próprio comentário: https://share.getcloudapp.com/OAuBKzYY .

Por que ele pula de 1982 para 1990?

solução!

Olá Matheus,

Mude este trecho de código:

while(anoCopa >= anoNascimento && anoCopa <= anoAtual) {
        anoCopa = anoCopa + 4;
        exibe("Teve Copa do Mundo em " + anoCopa + ".");
        exibe("<br>");
        var minhaIdade = anoCopa - anoNascimento;
        exibe("E você tinha " + minhaIdade + " anos.");
        pulaLinha();
    }

Por este:

while(anoCopa > anoNascimento && anoCopa <= anoAtual) {
        exibe("Teve Copa do Mundo em " + anoCopa + ".");
        exibe("<br>");
        var minhaIdade = anoCopa - anoNascimento;
        exibe("E você tinha " + minhaIdade + " anos.");
        pulaLinha();
    anoCopa = anoCopa + 4;
    }

E o trecho abaixo não é necessário:

 while(anoCopa == anoNascimento + 1) {
        anoCopa = anoCopa + 4;
        exibe("Teve Copa do Mundo em " + anoCopa + ".");
        exibe("<br>");
        var minhaIdade = anoCopa - anoNascimento;
        exibe("E você tinha " + minhaIdade + " ano.");
        pulaLinha();
    }

Testa aí e nos diga se deu certo.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software