‫Tudo bem, então agora que você sabe como usar uma corrida e se vestir tão bem quanto para cada tropa, vamos combinar
‫isso vamos combinar os conceitos em um vídeo e um exemplo.
‫Mas também vamos dar uma olhada em fóruns aninhados.
‫Neste vídeo, vamos examinar esses diferentes recursos e ver quando usar um loop for aninhado e quais são
‫as vantagens de um loop for aninhado em relação a um for each loop quando se trata de,
‫por exemplo, multidimensional matrizes.
‫OK, então vamos começar.
‫A primeira coisa que tenho aqui é, como você pode ver, esta matriz, que
‫é uma matriz bidimensional, que tem três itens em cada dimensão.
‫OK, então três linhas e três colunas, por assim dizer.
‫Portanto, vou usar o for each loop usando a palavra-chave for each aqui.
‫Este e o DTAP.
‫E isso me permitirá basicamente digitar muito rapidamente que tipo é, como quero chamar
‫o item da coleção que estou iterando e a coleção.
‫Portanto, este é um pequeno truque interessante se você deseja tornar a codificação mais rápida.
‫Portanto, o item será do tipo inteiro porque queremos iterar por meio dessa matriz, que
‫contém vários números inteiros, e o item podemos segui-lo.
‫Poderíamos chamá-lo de NUM porque é um número que poderíamos chamá-lo de elemento.
‫Esses seriam nomes normais que você veria aqui, mas o item vai ficar bem por enquanto.
‫E então a coleção que desejo iterar será minha matriz que preparei aqui.
‫E esse é também o motivo pelo qual eu precisei fazer essa matriz estática, porque
‫estou usando-a dentro do meu método principal estático e você não pode usar itens não estáticos como variáveis dentro do método principal estático ou
‫dentro de métodos estáticos em geral.
‫OK, então, a fim de iterar por isso para cada grupo e exibir os itens da matriz, podemos simplesmente ir em
‫frente e usar o console.
‫Declaração da linha certa aqui.
‫Então S. C. guia dupla e aqui vou apenas dizer exibir o item e, em seguida, criar um espaço vazio.
‫Ou crie um espaço vazio e na verdade não vamos usar a linha vermelha, mas certo, então isso vai apenas escrever em
‫uma linha e não criar uma nova linha o tempo todo.
‫Agora, vamos executar isso bem rápido.
‫E veremos que temos um, dois, três, quatro, cinco, seis, sete, oito, nove.
‫OK, então todos os itens que temos aqui em nossa matriz estão sendo exibidos.
‫Portanto, estamos usando isso para cada loop para percorrer cada item dentro desta matriz.
‫E vai da esquerda ou superior esquerda para a direita inferior, por assim dizer, em nosso exemplo aqui.
‫OK, então para cada dois existe uma ferramenta poderosa.
‫Isso nos permite passar por uma coleção e uma matriz 2D, uma matriz 3D, quantas dimensões você
‫quiser, todas no final são apenas coleções, porque aqui estamos usando um array e um array é
‫um tipo de uma coleção.
‫OK, e isso é o que precisávamos para fornecer o for each loop para iterar.
‫Portanto, itere por meio de nossa matriz de coleção.
‫Portanto, agora podemos prosseguir e usar isso para mostrar como você poderia ter feito isso usando um loop for
‫aninhado.
‫OK, então o for each group é muito útil se você quiser apenas examinar cada
‫um dos itens nele, mas tem certas desvantagens em termos de certas situações.
‫Portanto, no caso de você querer alterar o item agora, você não pode fazer isso porque ele está protegido.
‫Portanto, você não pode prosseguir e dizer que o item agora deve ser substituído por três, por exemplo, como você pode ver
‫aqui.
‫Então, se você tentar fazer isso, ele dirá que não é possível atribuir ao item porque é um para cada variável de iteração.
‫OK, então não é o item real, é apenas o armazenamento de valor, por assim dizer.
‫Portanto, armazenamos qualquer valor que estamos vendo em nossa coleção e o que armazenamos aqui, o valor
‫dele.
‫Portanto, na primeira iteração é um, na segunda iteração é dois, mas nunca é realmente o valor
‫em si.
‫É apenas uma referência ao valor.
‫OK, isso realmente não nos ajuda.
‫Portanto, se quisermos realmente ajustar, precisaremos de algo como um loop for aninhado.
‫OK, então aqui, vamos prosseguir e criar um ninho.
‫Vou adicionar uma pequena instrução de linha vermelha aqui, dizendo que isso está imprimindo nosso array usando uma pasta aninhada.
‫Então, o que é um volume aninhado?
‫Bem, é basicamente uma pasta com outro loop for dentro dela.
‫OK, então aqui vamos usar quatro e podemos usar o toque duplo novamente.
‫Portanto, vamos de I zero para o comprimento.
‫Portanto, precisamos inserir a duração da iteração.
‫Então, o que vou fazer aqui é usar minha matriz, mas eu poderia, é claro, usar comprimento aqui
‫e isso me daria o comprimento de toda a matriz.
‫Então, basicamente, o número de itens que tenho dentro dessa matriz, mas não é isso que eu quero.
‫Quero examinar cada dimensão, portanto, quero examiná-la linha por linha e coluna por coluna.
‫Portanto, a primeira dimensão serão as linhas.
‫Portanto, posso usar um método que o arrays oferece.
‫Portanto, a classe array tem este método de grande comprimento onde eu preciso analisar a dimensão.
‫OK, isso me dará o número representado ou apenas você pode ver aqui que representa o número de
‫elementos na dimensão especificada da matriz.
‫Portanto, no meu caso, se eu inserir zero, isso agora retornará o zero com uma dimensão que basicamente significa as
‫linhas.
‫OK, então isso vai me dar as linhas.
‫Portanto, agora, se eu quiser iterar por meio de cada coluna individual, preciso usar outro loop for aqui.
‫Portanto, este será meu volume interno, tipo loop for interno.
‫OK, e este aqui, este será o loop for externo.
‫OK então.
‫O que agora precisamos mudar, é claro, será o nome da variável de iteração, então aqui vamos usar Jay
‫em vez de I.
‫Esta é uma prática comum.
‫Portanto, se você tem um em uma foto, normalmente usa Jay aqui como o nome da variável do contador.
‫Mas agora queremos comparar Jay não com o comprimento da primeira dimensão, mas da segunda dimensão.
‫Então, inserimos um aqui.
‫Portanto, agora vou permitir que eu examine cada coluna.
‫Portanto, este trabalho de Falu será percorrer as colunas individuais e o seguinte.
‫Jope irá percorrer o será para percorrer as linhas individuais.
‫Isso significa que agora podemos ir em frente.
‫E apenas fazer nossa declaração certa aqui, mas então, é claro, não temos um item aqui, então o
‫que temos?
‫Bem, nós temos a matriz, a variável estática que criamos aqui.
‫Mas esta matriz precisa saber quais itens deve exibir.
‫Portanto, direi apenas exibir I j.
‫O que significa que exibiu se.
‫Role na coluna Jeff, o que basicamente significa na primeira iteração, isso eu serei zero.
‫E então começamos com este volume e este volume irá percorrê-lo até que esteja pronto.
‫E então ele irá apenas para a próxima iteração do out of the loop.
‫Então, só então serei incrementado em um.
‫OK, então isso significa que vou permanecer zero até que tenhamos passado por este volume, o que significa que começamos
‫do zero para I e então temos J sendo zero na primeira iteração.
‫Assim, obtemos a primeira entrada, temos J sendo um, porque incrementamos uma vez que percorremos esta
‫linha de código e aumentamos em um.
‫Portanto, agora J será um e diremos zero um.
‫Então a posição zero um da nossa matriz vai ser este dois aqui, então J vai ser dois que será
‫este três.
‫E então verificamos se é.
‫Dois mais um, o que vai ficar bem, Jay, sendo incrementado depois que a duração é três a menos do que
‫o comprimento da dimensão atual que estamos olhando.
‫E a dimensão vai ser a dimensão da coluna.
‫Então, quantas colunas nós temos?
‫E, neste caso, temos três colunas.
‫Portanto, três não é menos que três, por isso este volume será feito com sua execução.
‫E vamos para o loop for externo novamente.
‫Portanto, desta vez, aumentamos ou incrementamos I.
‫Por um, o que significa que agora serei um, e então passaremos por este loop for três vezes novamente, então
‫temos que ser um e ser zero na primeira iteração disso em um loop for, então será um, então
‫serão duas.
‫Basicamente, ele passará por esse item, então esse item, depois esse item, e a cada vez que vai
‫escrever no console e deixar um espaço vazio.
‫E então, na primeira iteração de nosso loop ou fora do loop aqui, passará pela última linha, por assim
‫dizer.
‫Portanto, este aqui é um for aninhado.
‫Olhar.
‫OK, então vamos executar isso rapidamente só para ver se isso realmente vai fazer o
‫que estou dizendo e você pode ver aqui, bem, talvez eu deva imprimi-lo de forma um pouco diferente.
‫Aqui, vou ter outra quebra de linha.
‫Tipo, então vamos tentar novamente.
‫Como você pode ver, este é nosso array 2D impresso usando o loop for aninhado.
‫Este é este aqui.
‫Este foi o para cada loop.
‫E agora, neste ponto, você pode dizer, ei, qual é a vantagem, Dennis?
‫Isso faz sentido?
‫Não gosto do que você está fazendo aí.
‫Prefiro usar o for each loop.
‫Você vê, é super simples, muito pouco código que eu preciso.
‫O legal aqui é que tenho acesso direto ao item que estou olhando no momento.
‫Portanto, neste caso, estou apenas iterando.
‫Mas e se eu fosse em frente e atribuísse um novo valor a ele?
‫Digamos que eu atribua zero a ele.
‫Portanto, agora, se executarmos isso, obteremos um monte de zeros.
‫Aqui você vê zero zero zero zero.
‫Portanto, agora posso criar uma lógica com a qual, por exemplo, substituir o valor.
‫E isso não é facilmente alcançável com um para cada loop, para que cada um seja
‫supergrande, apenas exibir algo e executar algum código para cada item, mas não alterando especificamente o item
‫em si, porque o item é apenas um local de armazenamento de curto prazo para qualquer valor que tenhamos dentro do.
‫Coleção que estamos olhando, e que é diferente para um Nesat Falu, e isso já é uma vantagem que você
‫vê aqui.
‫Mas há outras vantagens e vamos examinar mais alguns exemplos de loops for aninhados com este
‫exemplo específico que temos aqui.
‫Vamos ajustar um pouco no próximo vídeo.
‫E você vai, por exemplo, ver como você pode obter números pares ou ímpares do seu loop
‫for e também ver como você pode ajustá-lo para que você imprima apenas, por exemplo, elementos diagonais, porque isso lhe dará um
‫idéia geral do que você pode usar para loops for ou a menos que ele inverta.
‫E basicamente você tem muita liberdade e programação.
‫E eu só queria dar a você mais algumas ferramentas que você pode usar.
‫OK, então neste ponto eu diria que vamos passar para o próximo vídeo, onde veremos isso.