for-each petlja sa n dimenzionalnim nizovima ustvari raspakuje takav niz po prvoj dimenziji i prodje kroz svaki (n-1) dimenzionalni niz.
konkretno posmatrajmo dvodimenzionalni niz (matrica, obrati pažnju na Rajkov odgovor)
Code:
int brojevi [][]=new int[3][5];
For-each ce raspakovati ovaj niz po prvoj dimenziji i proći će kroz niz 1 dimenzionalnih, tako raspakovanih, nizova.
Konkretno će raspakovati ovaj dvo dimenzionalni niz na 3(prva dimenzija) jednodimenzionalna(n-1, konkretno n=2, pa je 2-1=1) niza.
Code:
1. for(int x[]:brojevi)
2. {
3. for(int y:x)
4. {
5. System.out.println("Broj je: "+y);
6. }
7. }
1. brojevi je promenljiva koja je dvodimenzionalni niz(3 reda, 5 kolona), i taj niz će se raspakovati po prvoj dimenziji na jednodimenzionalne nizove(tri jednodimenzionalna niza). U svakom koraku promeljiva x će sadržati jednodimenzionalni niz(sa 5 elemenata), i tako se prolazi kroz sve nizove. U tijelu prve for petlje x je ustvari jedan jednodimenzionalni niz.
3. Druga for petlja će da raspakuje taj, već raspakovani, niz koji je sačuvan u promeljivoj x. Kako je to jednodimenzionalni niz, raspakovaće ga na int-ove (5 intova za svaki niz), koji se čuvaju u promeljivoj y.
5. U promenljivoj y čuvamo int-ove koji se izlistavaju u for petlji, pa ih ovako možemo ispisati
for(tip promeljiva1:promeljiva2)
, "tip" predstavlja tip kada se raspakuje n dimenzionalni niz raspakuje po prvoj dimenziji, "promeljiva1" će da sadrži to što je raspakovano, i to u svakoj sledećoj iteraciji će biti sledeći raspakovani segment. "promenljiva2" je ustvari ono što raspakujemo. 5-dimenzionalni niz se raspakuje na 4-dimenzionalni, koji se raspakuje na 3-dimenzionalni.... 1-dimenzionalni niz se raspakuje na osnovne elemente, sadržaj niza.
Nadam se da sam pomogao,
pozdrav