1
resposta

O que eu fiz de errado?

Alguém poderia ajudar esse velho padawan a identificar onde está o erro, porque o browser não abre e a página fica carregando indefinidamente.

<!DOCTYPE html>
<html>
<head>
    <title>Sequência decrescente de números.</title>
    <meta charset="utf-8">
</head>
<body>
    <h3>Sequência de números de 20 até 0.</h3>
    <script type="text/javascript">
        function mostra(texto){
            document.write(texto);
        }
        var numero=20;
        while(numero>=0){
            if (numero!=0){
                mostra(numero+", ");
                var numero=numero-1;
            }else{
                mostra(numero+" - FIM.");
            } 
        }
    </script>
</body>
</html>

Grato pela atenção.

1 resposta

Vitor, na linha 17 você acabou reatribuindo a variável numero com a expressão var numero=numero-1; fazendo ela ser diferente da variável var numero=20; e no else quando a variável numero chega no 0, é necessário utilizar o break para encerrar o loop ou decrementar numero para ele ser menor do que zero e sair do loop.

<!DOCTYPE html>
<html>
<head>
    <title>Sequência decrescente de números.</title>
    <meta charset="utf-8">
</head>
<body>
    <h3>Sequência de números de 20 até 0.</h3>
    <script type="text/javascript">
        function mostra(texto){
            document.write(texto);
        }
        var numero=20;
        while(numero>=0){
            if (numero!=0){
                mostra(numero+", ");
                // Reatribuiu a variável novamente com 'var numero'
                numero=numero-1;
            }else{
                mostra(numero+" - FIM.");
                // necessário o break para encerrar o loop ou numero=numero-1;
                break
            } 
        }
    </script>
</body>
</html>