1
resposta

Não entendi como o contador interno funciona

Boa tarde, fiquei com dificuldade em entender o funcionamento do contador interno, vamos lá!

Tanto o contadorLinha quanto o contadorColuna começam em 0. Então quando chega no IF, os contadores estão iguais, então escreveu a primeira linha. Agora vem a dúvida, quando volta pro for externo o contadorLinha vai pra 1 e na minha mente o contadorColuna também vai pra 1, então o IF será "TRUE" porque os dois contadores são iguais, então teria que sair de novo usando o break. Como na segunda passada do for ele vai escrever os 2 asteriscos?

for (int contadorLinha = 0; contadorLinha < 10; contadorLinha++)
            {
                for (int contadorColuna = 0; contadorColuna < 10; contadorColuna++)
                {
                    Console.Write("*");
                    if (contadorColuna >= contadorLinha)
                        break;
                }
                Console.WriteLine();
            }

            Console.ReadLine();
1 resposta

Boa noite, Felipe. O segundo for funciona exatamente como o primeiro, ele só vai sair do loop dele quando a expressão for falsa, ou tiver um break, ou seja, o primeiro vai ter a contadorLinha como 0, logo depois ele vai se deparar com o segundo for e voltara para ele para ter a contadorLinha como 1 apenas quando o segundo terminar de realizar seu loop, seguindo a mesma lógica do primeiro.

Tentando explicar em detalhes:

O primeiro for vai começar contando, no caso é 0, e só irá parar quando o número for menor que 10 ou tiver um break (que no caso só tem no segundo), então ele encontra o segundo for, e esse segundo for também vai fazer a mesma coisa, ele começa com 0 e só irá sair do seu loop, quando o número for menor que 10 ou tiver um break. Então ele sai e volta pro primeiro for que vai incrementar o número, agora sendo 1 e vai repetir o mesmo processo...

Espero ter ajudado :)