1
resposta

Dúvida Sobre Dart

Eu vi um código para desenhar uma pirâmide de asteriscos, ele funciona e entendo a lógica de como a piramide é formada, mas no terceiro for eu tenho uma dúvida, int j=7-i; j>0;j--, porque na segunda ocorrencia desse for, ele não da 5 como resultado, 7-1 = 6, mas o j-- não deveria transformar em 5?, claro não aconteceu então não, quer dizer que se eu subtrair antes de chegar em j-- já serve?, ai j-- não executa?

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

1 resposta

Olá, Jean. Tudo bem?

Vamos esclarecer sua dúvida sobre o funcionamento do loop for no código da pirâmide de asteriscos em Dart.

A dúvida parece estar na interpretação de como o valor de j é atualizado durante o loop. Quando você vê a expressão int j=7-i; j>0; j--, o que acontece é o seguinte:

  1. Inicialização: j é inicializado com o valor 7-i antes de começar a primeira iteração do loop.
  2. Condição de continuação: Antes de cada iteração, o Dart verifica se j é maior que 0.
  3. Corpo do loop: Se a condição for verdadeira, o corpo do loop é executado.
  4. Atualização: Após a execução do corpo do loop, a operação j-- é realizada, que decrementa o valor de j em 1.

No caso da segunda iteração do loop externo (quando i é 1), o valor de j é inicializado como 7-1, que é 6. Durante essa iteração do loop interno, j começa em 6, e após cada passagem pelo corpo do loop, j é decrementado (j--). Então, na primeira passagem, j é 6, na segunda é 5, e assim por diante, até que j seja 0, momento em que a condição j>0 se torna falsa e o loop interno é encerrado.

A dúvida pode ter surgido ao pensar que a subtração 7-i e a decrementação j-- ocorrem ao mesmo tempo, mas não é o caso. A subtração 7-i só é feita uma vez para inicializar j, e depois disso, apenas j-- é executado após cada passagem pelo corpo do loop.

Espero que isso esclareça sua dúvida sobre como o valor de j é atualizado no loop e como isso afeta a construção da pirâmide de asteriscos. Continue praticando e explorando diferentes estruturas de código para aprofundar seu entendimento.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software