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

Qual a razão?

Tudo bem pessoal?

Inicialmente, dentro do while, inverti a ordem da instrução anoCopa = anoCopa + 4 com a função mostra. Desta forma, a variável limite não é respeitada, sendo acrescido + 4 anos. Qual a razão?

Obrigado!!

10 respostas

Pode postar o código?

Olá Luiz, tenta postar o código.

<meta charset="UTF-8">

<script>

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

    function mostra(frase) {

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

    var anoCopa = 1930;
    var limite = parseInt(prompt("Qual é o ano limite?"));

    while(anoCopa <= limite) {

        anoCopa = anoCopa +4;
        mostra(anoCopa);
    }

    mostra("Ufa! Esses foram os anos de copa até " + limite);
</script>

Não estava conseguindo postar o código. Agora que vi que tem um botão com a opção inserir bloco de código.

Obrigado!

Olá Luiz, o código está correto, não entendi a sua questão.

// **Código Alura:**

    while(anoCopa <= limite) {

        mostra(anoCopa + " tem copa!");
        anoCopa = anoCopa + 4;
    }
// **Meu código:**

 while(anoCopa <= limite) {

        anoCopa = anoCopa +4;
        mostra(anoCopa);

    }

Como dito anteriormente, inverti a ordem da instrução anoCopa = anoCopa + 4 com a função mostra. Desta forma, a variável limite não é respeita.

Se, por exemplo, informar o limite sendo o ano de 1940 haverá a impressão do ano de 1942, não respeitando o limite que no meu entender deveria ser até o ano de 1938.

Obrigado!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Ahhh, entendi o que você quis dizer.

Repara a lógica do loop:

A condição é, enquanto o anoCopa for menor ou igual ao limite. A variável anoCopa recebe 4 e depois a função mostra imprime o valor e só então a condição é testada novamente. A função mostra deve vir antes por isso, pois quando o anoCopa for maior que o limite o loop while para antes de mostrar o valor, além disso, colocando a função mostra sendo colocada depois não imprime o valor de 1930 que deve ser incluso, afinal também foi um ano de copa.

Tudo certo?

Tudo certo! Obrigado pela ajuda.

Tudo certo! Obrigado pela ajuda.

solução!

por nada, marca como resolvido