‫Bene, ora che sai come usare una razza e come vestirti così come per ogni truppa, combiniamoli
‫uniamo i concetti in un video e un esempio.
‫Ma diamo anche un'occhiata ai forum nidificati.
‫Quindi in questo video esamineremo queste diverse funzionalità e poi vedremo quando utilizzare un ciclo for annidato e
‫quali sono i vantaggi di un ciclo for annidato rispetto a un ciclo for each quando si tratta, ad
‫esempio, di multidimensionale matrici.
‫OK, allora cominciamo.
‫La prima cosa che ho qui è, come puoi vedere, ho questa matrice, che
‫è un array bidimensionale, che ha tre elementi per ogni dimensione.
‫OK, quindi tre righe e tre colonne, per così dire.
‫Quindi userò il ciclo per ogni utilizzando la parola chiave per ogni qui.
‫Questo e DTAP.
‫E questo mi permetterà quindi di digitare molto velocemente che tipo è, come voglio
‫chiamare l'elemento della raccolta che sto scorrendo e la raccolta.
‫Quindi questo è un piccolo trucco se vuoi diventare più veloce nella codifica.
‫Quindi l'elemento sarà di tipo intero perché vogliamo iterare attraverso questa matrice, che contiene
‫un gruppo di interi, e l'elemento possiamo seguirlo.
‫Potremmo chiamarlo NUM perché è un numero che potremmo chiamarlo elemento.
‫Questi sarebbero nomi normali che vedresti qui, ma per ora l'oggetto andrà bene.
‫E poi la collezione che voglio scorrere sarà la mia matrice che ho preparato qui.
‫E questo è anche il motivo per cui avevo bisogno di rendere statica questa matrice perché
‫la sto usando all'interno del mio metodo principale statico e non è possibile utilizzare elementi non statici erano variabili all'interno del metodo principale statico o
‫all'interno dei metodi statici in generale.
‫OK, quindi per scorrere questo per ogni gruppo e visualizzare gli elementi della matrice, possiamo semplicemente andare avanti
‫e usare la console.
‫Dichiarazione sulla linea di destra qui.
‫Quindi s. W. doppia scheda e qui dirò solo visualizzare l'elemento e quindi creare uno spazio vuoto.
‫Oppure crea uno spazio vuoto e in realtà non usiamo la linea rossa, ma giusto, quindi questo lo scriverà solo in
‫una riga e non creerà una nuova riga tutto il tempo.
‫Ora, eseguiamo questo molto velocemente.
‫E vedremo che ne abbiamo uno, due, tre, quattro, cinque, sei, sette, otto, nove.
‫OK, quindi tutti gli elementi che abbiamo qui nella nostra matrice vengono visualizzati.
‫Quindi stiamo usando questo per ogni ciclo per passare attraverso ogni singolo elemento all'interno di questa matrice.
‫E va semplicemente da sinistra o in alto a sinistra in basso a destra, per così dire, nel nostro esempio qui.
‫OK, quindi per ogni due è uno strumento potente.
‫Ci permette di passare attraverso una raccolta e una matrice 2D, una matrice 3D, per quante dimensioni si voglia
‫avere, alla fine tutte queste sono solo raccolte, perché qui stiamo usando un array e un array è
‫un tipo di una collezione.
‫OK, e questo è ciò di cui avevamo bisogno per eseguire l'iterazione di ogni ciclo.
‫Quindi iterare attraverso la nostra matrice di raccolta.
‫Quindi ora possiamo andare avanti e usarlo per mostrarti come avresti potuto ottenere questo usando un ciclo for
‫annidato.
‫OK, quindi per ogni gruppo è super utile se vuoi solo esaminare ogni singolo elemento
‫in esso contenuto, ma presenta alcuni svantaggi in termini di determinate situazioni.
‫Quindi, nel caso in cui tu voglia ora cambiare l'elemento, non puoi farlo perché è protetto.
‫Quindi non puoi andare avanti e dire che l'elemento ora dovrebbe essere sovrascritto con tre, ad esempio, come puoi vedere
‫qui.
‫Quindi, se lo provi, dice che non è possibile assegnare all'elemento perché è una variabile per ogni iterazione.
‫OK, quindi non è l'oggetto reale, è davvero solo l'archiviazione del valore, per così dire.
‫Quindi memorizziamo qualsiasi valore che stiamo attualmente guardando dalla nostra collezione e ciò che memorizziamo qui, il valore
‫di esso.
‫Quindi nella prima iterazione è uno, nella seconda iterazione è due, ma in realtà non è mai il
‫valore stesso.
‫È solo un riferimento al valore.
‫OK, quindi questo davvero non ci aiuta.
‫Quindi, se vogliamo effettivamente aggiustare, avremmo bisogno di qualcosa come un ciclo for annidato.
‫OK, quindi ecco, andiamo avanti e creiamo un nido.
‫Aggiungerò una piccola dichiarazione in rosso qui, dicendo che questo sta stampando il nostro array usando una cartella nidificata.
‫Quindi cos'è un volume annidato?
‫Bene, è fondamentalmente una cartella con un altro ciclo for al suo interno.
‫OK, quindi qui useremo quattro e possiamo usare di nuovo il doppio tocco.
‫Quindi passiamo da I zero alla lunghezza.
‫Quindi qui dobbiamo inserire la lunghezza dell'iterazione.
‫Quindi quello che farò qui è che userò la mia matrice, ma ovviamente potrei usare la lunghezza
‫qui e questo mi darebbe la lunghezza dell'intera matrice.
‫Quindi fondamentalmente il numero di elementi che ho all'interno di questa matrice, ma non è quello che voglio.
‫Voglio esaminare ogni dimensione, quindi voglio esaminarla riga per riga e colonna per colonna.
‫Quindi la prima dimensione saranno le righe.
‫Quindi posso usare un metodo offerto dagli array.
‫Quindi la classe array ha questo metodo di grande lunghezza in cui devo analizzare la dimensione.
‫OK, quindi questo mi farà ottenere il numero rappresentato o solo che puoi vedere qui che rappresenta il
‫numero di elementi nella dimensione specificata dell'array.
‫Quindi nel mio caso, se inserisco zero, ora restituirà lo zero con una dimensione che sostanzialmente significa le
‫righe.
‫OK, quindi questo mi darà le righe.
‫Quindi ora, se voglio scorrere ogni singola colonna, devo usarne un altro per il ciclo qui.
‫Quindi questo sarà il mio volume interno, come il ciclo for interno.
‫OK, e questo qui fuori, questo sarà il ciclo for esterno.
‫Ok allora.
‫Quello che ora dobbiamo cambiare, ovviamente, sarà il nome della variabile di iterazione, quindi qui useremo Jay
‫invece di I.
‫Questa è una pratica comune.
‫Quindi, se hai un in una foto, di solito usi Jay qui come nome della variabile contatore.
‫Ma ora vogliamo confrontare Jay non con la lunghezza della prima dimensione, ma della seconda dimensione.
‫Quindi ne inseriamo uno qui.
‫Quindi questo ora mi consentirà di esaminare ogni singola colonna.
‫Quindi questo lavoro di Falu sarà passare attraverso le singole colonne e questo segue.
‫Jope passerà attraverso le singole righe.
‫Quindi questo significa che ora possiamo andare avanti.
‫E fai la nostra affermazione giusta proprio qui, ma poi, ovviamente, non abbiamo un oggetto qui, quindi
‫cosa abbiamo?
‫Bene, abbiamo la matrice, la variabile statica che abbiamo creato qui.
‫Ma questa matrice ha bisogno di sapere quali elementi deve visualizzare.
‫Quindi dirò solo di visualizzare I j.
‫Il che significa che viene visualizzato se.
‫Tira sulla colonna Jeff, che sostanzialmente significa che nella prima iterazione, questo I sarà zero.
‫E poi iniziamo con questo volume e questo volume lo attraverserà finché non sarà finito.
‫E poi passerà solo alla prossima iterazione del fuori ciclo.
‫Quindi solo allora sarò incrementato di uno.
‫OK, questo significa che I rimarrò zero fino a quando non avremo superato questo volume, il che significa che iniziamo da
‫zero per I e poi avremo J uguale a zero nella prima iterazione.
‫Quindi otteniamo la prima voce, quindi J è uno perché abbiamo incrementato una volta che abbiamo attraversato questa
‫riga di codice e l'abbiamo aumentata di uno.
‫Quindi ora J sarà uno e diciamo zero uno.
‫Quindi la posizione zero uno della nostra matrice sarà questo due qui, quindi J sarà due che sarà
‫questo tre.
‫E poi controlliamo è.
‫Due più uno, che andrà tutto bene, Jay, che viene incrementato dopo che la durata è di tre in meno rispetto
‫alla lunghezza della dimensione attuale che stiamo osservando.
‫E la dimensione sarà la dimensione della colonna.
‫Quindi quante colonne abbiamo?
‫E in questo caso, abbiamo tre colonne.
‫Quindi tre non è inferiore a tre, motivo per cui questo volume verrà completato con la sua esecuzione.
‫E andiamo di nuovo al ciclo for esterno.
‫Quindi questa volta aumentiamo o incrementiamo I.
‫Con uno, il che significa che ora sarò uno, e poi ripeteremo questo per Loop tre volte, quindi abbiamo che
‫io sono uno e sono zero nella prima iterazione di questo in un ciclo for, quindi sarà uno, quindi
‫saranno due.
‫Quindi fondamentalmente passerà attraverso questo elemento, quindi questo elemento rispetto a questo elemento e ogni volta lo
‫scriverà sulla console e lascerà uno spazio vuoto.
‫E poi nella prima iterazione del nostro ciclo o fuori dal ciclo qui, passerà attraverso l'ultima riga, per così
‫dire.
‫Quindi questo qui è un annidato per.
‫Aspetto.
‫OK, quindi andiamo molto velocemente solo per vedere se questo farà davvero quello
‫che sto dicendo e puoi vedere qui, beh, forse dovrei stamparlo in modo leggermente diverso.
‫Ecco, avrò un'altra interruzione di riga.
‫Cioè, quindi proviamoci di nuovo.
‫Quindi vedi, questo è il nostro array 2D stampato usando il ciclo for annidato.
‫Questo è questo qui.
‫Questo era il per ogni ciclo.
‫E ora, a questo punto, potresti dire, ehi, qual è il vantaggio, Dennis?
‫Anche questo ha senso?
‫Non mi piace quello che stai facendo lì.
‫Preferisco usare per ogni ciclo.
‫Vedete, è semplicissimo, pochissimo codice di cui ho bisogno.
‫Mentre la cosa interessante qui è che ho accesso diretto all'oggetto che sto attualmente guardando.
‫Quindi qui, in questo caso, sto solo iterando su di esso.
‫Ma cosa succede se andassi avanti e gli assegnassi un nuovo valore?
‫Diciamo che gli assegno zero.
‫Quindi ora, se eseguiamo questo, otterremo un mucchio di zeri.
‫Qui vedi zero zero zero zero.
‫Quindi ora posso creare una logica con la quale, ad esempio, sovrascriverò il valore.
‫E questo non è facilmente ottenibile con un ciclo for each, perché ognuno sia super
‫fantastico, per visualizzare semplicemente qualcosa ed eseguire del codice per ogni singolo elemento, ma non modificando
‫specificamente l'elemento stesso, perché l'elemento è solo una posizione di archiviazione a breve termine per qualunque valore abbiamo all'interno del.
‫Collezione che stiamo guardando, ed è diversa per un Nesat Falu, e questo è già un vantaggio che
‫vedi qui.
‫Ma ci sono altri vantaggi e vedremo altri esempi di cicli for annidati con questo
‫particolare esempio che abbiamo qui.
‫Lo regoleremo un po' nel prossimo video.
‫E vedrai, ad esempio, come puoi ottenere numeri pari o dispari dal tuo ciclo for e poi
‫vedrai anche come puoi regolarlo in modo da stampare solo, ad esempio, elementi diagonali, perché questo ti darà un idea generale
‫di cosa puoi usare per i loop per o a meno che non si capovolga.
‫E fondamentalmente hai così tanta libertà e programmazione.
‫E volevo solo darti alcuni strumenti in più che puoi usare.
‫OK, quindi a questo punto direi di passare al prossimo video in cui lo vedremo.