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

Existe uma forma mais enxuta de escrever essa mesma resolução?

<script>
    function mostre(frase) {
        document.write(frase);
        document.write("<br>");
    }
    var numeroLimite = 0;
    var numeroInicial = parseInt(prompt("Insita até qual numero deseja: "));

    for (numeroInicial; numeroInicial >= numeroLimite; numeroInicial = numeroInicial - 1) {
        mostre (numeroInicial);
    }

    mostre ("Fim");
</script>
2 respostas
solução!

Olá João, tudo bem com você?

Podemos fazer duas alterações para deixar mais enxuto, mas eu vou fazer alguns comentários:

  • Colocar a parte de capturar o número dentro do for:

Antes de mais nada, eu não recomendo fazer isso, precisamos sempre ponderar se deixar o código enxuto é algo bom, e nesse caso para mim deixa muito mais confuso para quem lê o código

Maaaas, poderiamos ter algo assim, tranquilamente:

for( numeroInicial = parseInt(prompt("Insira até qual número deseja: ")); numeroInicial >= numeroLimite; numeroInicial = numeroInicial -1) 
  • Utilizar os operadores de auto-incremento e auto-decremento

Esse eu acho super valido, e deixa o nosso código mais simples, além de estar presente na maioria dos códigos que você irá ver, vou te explicar como funciona:

Ao invés de fazer:

  • numeroInicial = numeroInicial - 1

Podemos fazer:

numeroInicial--

Ambos tem o mesmo significado, estamos indicando que a cada iteração do foriremos diminuir em uma unidade, o mesmo vale para se quiséssemos aumentar em uma unidade:

numeroInicial++

Dessa maneira o nosso for poderia ficar assim:

    for (numeroInicial; numeroInicial >= numeroLimite; numeroInicial--) {

Abraços e Bons Estudos!

Incrível ! Irei anotar e implementar a partir de hoje ! Muito obrigado !