2

Estou estudando JavaScript pelo livro da casa do código e tem um desafio envolvendo loops aninhados, no qual eu tenho que desenhar isso:

*
**
***
****
*****
******
*******

Usando esse código:

for(var Linha=0;Linha<10;Linha=Linha+1){
    for(var Coluna=0;Coluna<10;Coluna=Coluna+1){
        document.write("*")
    }
    document.write("<br>")
}

1 Resposta 1

3

Para atingir esse objetivo só precisa de alterar a condição de paragem no for das colunas, para que pare no numero a seguir à linha corrente.

Pode visualizar assim:

  • Na primeira linha, a linha 0, vai até 1 e escreve 1 caretere
  • Na segunda, a linha 1, vai até 2, e por isso escreve 2 careteres

E por ai em diante.

Exemplo:

for(var Linha=0;Linha<10;Linha=Linha+1){
    for(var Coluna=0;Coluna<Linha + 1;Coluna=Coluna+1){
        //                    ^--- Linha + 1 em vez de 10
        document.write("*")
    }
    document.write("<br>")
}

Na verdade como você quer apenas repetir os asteriscos uma determinada quantidade de vezes já tem o método repeat da string que faz isso, o que simplifica bastante a lógica:

for(var Linha=0;Linha<10;Linha=Linha+1){
    document.write("*".repeat(Linha + 1) + "<br>")
}

Você deve fazer log-in para responder a esta pergunta.

Esta não é a resposta que você está procurando? Pesquise outras perguntas com a tag .