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:
- Inicialização:
j é inicializado com o valor 7-i antes de começar a primeira iteração do loop. - Condição de continuação: Antes de cada iteração, o Dart verifica se
j é maior que 0. - Corpo do loop: Se a condição for verdadeira, o corpo do loop é executado.
- 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.