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

Não consigo executar meu código é o exercício dos números decrescentes de 20 a 0

Olá meu código é esse. Como eu concerto ele ?

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

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

    var contador = 20;
    var limite = 0

    while(contador <= limite) {



        if(contador >= 0) {
        mostra(contador);
        contador = contador - 1; 
        }
      }

    mostra("FIM");

</script>
4 respostas

Fala, Daniel! Tranquilo? Espero que sim! Cara, seu código não está aparencendo os números em ordem decrescente por conta da condição do loop while. Ela esta dizendo que enquanto o contador for menor ou igual ao limite ele executará o bloco, porém o contador é maior que o limite no começo, por isso ele nunca entra no loop. a condição correta seria

while(contador >= limite) {

Assim ele entraria no loop e executaria o programa direitinho.

Abraços e bons estudos!

então, eu alterei essa parte e mesmo assim não funcionou. Meu código agora ta assim. Obs: Não é para entrar em loop se entrar em loop ele carrega infinitamente a página que é isso que está acontecendo.

meu código ta aqui agora

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

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

    var contador = 20;
    var limite = 0

    while(contador <= 20) {

    if(contador >= limite) {

        mostra(contador);



        }




        numeroatual = contador - 1; 
      }

    mostra("FIM");

</script>

solução!

Opa, vamos lá: a idéia é criar um programa que exiba do 20 ate o 0 na página e então pare a execução. Para isso devemos ter algo que mostre a variavel como 20, retire 1 do valor da mesma e repita isso até que chegue em determinado limite. Traduzindo, queremos algo que mostre o valor da variavel enquanto ela é maior do que o limite estipulado e então vamos decrescendo o valor até que ela não satisfaça mais essa condição. Pra isso usamos:

while(contador >= limite) {
}

e então escrevemos a instrunção que queremos que o computador realize quando a condição do while for verdadeira, no caso escrever na tela:

while(contador >= limite) {
    mostra(contador);
}

Note que, como o while testa a condição para verificar se a mesma e verdadeira não precisamos do if para testar novamente, apenas pedimos para escrever na tela. Mas, desta forma, ele escreveria "20" na tela infinitamente, pois não estamos atualizando a variavel contador de nenhuma maneira. Precisamos atualiza-la para decrescer de forma que saia do loop while em algum momento, por isso usamos:

while(contador >= limite) {
    mostra(contador);
    contador = contador - 1;
}

Com isso temos a nossa repetição pronta. Ela irá exibir o contador na tela até ele deixar de satisfazer a condição de ser maior ou igual ao limite estipulado. Neste caso, do 20 ao 0. Abraços e bons estudos!

obrigado.