Pesastatud silmus Java-s (koos näidetega)

Lang L: none (table-of-contents)

Selles õpetuses õpime näidete abil Java sisseehitatud silmuseid.

Kui teise silmuse kehas on silmus, nimetatakse seda sisestatud silmuseks. Siin on näide pesastatud forsilmusest.

 // outer loop for (int i = 1; i <= 5; ++i) ( // codes // inner loop for(int j = 1; j <=2; ++j) ( // codes )… )

Siin kasutame forteise forsilmuse sees olevat silmust.

Pesastatud silmust saame kasutada iga nädala nädala kordamiseks 3 nädala jooksul.

Sellisel juhul saame kolm korda (3 nädalat) kordamiseks luua silmuse. Ja silmuse sees saame luua veel ühe silmuse 7 korda (7 päeva) kordamiseks.

Näide 1: Java on sisestatud silmuse jaoks

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop prints weeks for (int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop prints days for (int j = 1; j <= days; ++j) ( System.out.println(" Day: " + j); ) ) ) )

Väljund

Nädal: 1 päev: 1 päev: 2 päev: 3…. Nädal: 2 Päev: 1 Päev: 2 Päev: 3….….

Ülaltoodud näites kordub välissilmus 3 korda ja prinditakse 3 nädalat. Sisemine silmus kordub 7 korda ja prindib 7 päeva.

Saame luua ka pesastatud silmuseid funktsiooni while ja do… samasugusel viisil.

Märkus . Teise silmuse kere sees on võimalik kasutada ühte tüüpi silmuseid. Näiteks võime forsilmuse sisse panna whilesilmuse.

Näide 2: Java silmus samal ajal silmus

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; int i = 1; // outer loop while (i <= weeks) ( System.out.println("Week: " + i); // inner loop for (int j = 1; j <= days; ++j) ( System.out.println(" Days: " + j); ) ++i; ) ) )

Väljund :

Nädal: 1 päev: 1 päev: 2 päev: 3…. Nädal: 2 Päev: 1 Päev: 2 Päev: 3….….

Siin näete, et nii näite 1 kui ka näite 2 väljund on sama.

Näide 3: Java pesas silmuseid mustri loomiseks

Saame Java sisestatud silmuse abil luua selliseid mustreid nagu täispüramiid, poolpüramiid, tagurpidi püramiid jne.

Siin on programm püramiidmustri loomiseks pesastatud silmuste abil.

 class Main ( public static void main(String() args) ( int rows = 5; // outer loop for (int i = 1; i <= rows; ++i) ( // inner loop to print the numbers for (int j = 1; j <= i; ++j) ( System.out.print(j + " "); ) System.out.println(""); ) ) )

Väljund

 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5

Lisateabe saamiseks külastage püramiidi ja mustrite printimiseks Java-programmi.

murda ja jätkata sisemiste pesade aasasid

Kui kasutame breakavaldust sisemise silmuse sees, siis see lõpetab sisemise silmuse, kuid mitte välimise silmuse. Näiteks,

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop for(int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop for(int j = 1; j <= days; ++j) ( // break inside the inner loop if(i == 2) ( break; ) System.out.println(" Days: " + j); ) ) ) )

Väljund

Nädal: 1 päev: 1 päev: 2…. Nädal: 2 Nädal: 3 Päev: 1 Päev: 2….….

Ülaltoodud näites oleme kasutanud katkestuse lauset sisemise forsilmuse sees . Siin jätab programm silmuse vahele, kui i on 2 .

Seega 2. nädala päevi ei prindita. Nädalat trükkiv välimine silmus ei muutu.

Samamoodi continuejätab see , kui kasutame avaldust sisemise silmuse sees, ainult sisemise silmuse praeguse iteratsiooni. Välimine silmus ei muutu. Näiteks,

 class Main ( public static void main(String() args) ( int weeks = 3; int days = 7; // outer loop for(int i = 1; i <= weeks; ++i) ( System.out.println("Week: " + i); // inner loop for(int j = 1; j <= days; ++j) ( // continue inside the inner loop if(j % 2 != 0) ( continue; ) System.out.println(" Days: " + j); ) ) ) )

Väljund

 Nädal: 1 Päevad: 2 Päevad: 4 Päevad: 6 Nädal: 2 Päevad: 2 Päevad: 4 Päevad: 6 Nädal: 3 Päevad: 2 Päevad: 4 Päevad: 6

Ülaltoodud näites oleme kasutanud loopi sisemise jätkamise lauset. Pange tähele koodi,

 if(j % 2 != 0) ( continue; )

Siin continuetäidetakse lause siis, kui j väärtus on paaritu. Seega prindib programm ainult neid päevi, mis on ühtlased.

Näeme, et continueavaldus on mõjutanud ainult sisemist silmust. Välimine silmus töötab ilma probleemideta.

Huvitavad Artiklid...