Sisäänrakennettu Java-silmukka (esimerkkejä)

Tässä opetusohjelmassa opitaan Java: n sisäkkäisistä silmukoista esimerkkien avulla.

Jos toisen silmukan rungossa on silmukka, sitä kutsutaan sisäkkäiseksi silmukaksi. Tässä on esimerkki sisäkkäisestä forsilmukasta.

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

Tässä käytämme forsilmukkaa toisen forsilmukan sisällä .

Voimme käyttää sisäkkäistä silmukkaa iteroimaan läpi viikon jokaisen päivän 3 viikon ajan.

Tässä tapauksessa voimme luoda silmukan iteroimaan kolme kertaa (3 viikkoa). Ja silmukan sisällä voimme luoda toisen silmukan iteroimaan 7 kertaa (7 päivää).

Esimerkki 1: Java on sisäkkäin silmukalle

 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); ) ) ) )

Tuotos

Viikko: 1 päivä: 1 päivä: 2 päivä: 3…. Viikko: 2 Päivä: 1 Päivä: 2 Päivä: 3….….

Yllä olevassa esimerkissä ulompi silmukka toistuu 3 kertaa ja tulostaa 3 viikkoa. Sisäinen silmukka toistaa 7 kertaa ja tulostaa 7 päivää.

Voimme myös luoda sisäkkäisiä silmukoita while ja do… samalla tavalla.

Huomaa : On mahdollista käyttää yhden tyyppistä silmukkaa toisen silmukan rungossa. Esimerkiksi voimme laittaa forsilmukan silmukan sisään while.

Esimerkki 2: Java silmukalle while-silmukan sisällä

 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; ) ) )

Tuotos :

Viikko: 1 päivä: 1 päivä: 2 päivä: 3…. Viikko: 2 Päivä: 1 Päivä: 2 Päivä: 3….….

Täältä näet, että sekä esimerkin 1 että esimerkin 2 tulos on sama.

Esimerkki 3: Java sisäkkäiset silmukat kuvion luomiseksi

Voimme käyttää Java: n sisäkkäistä silmukkaa kuvioiden luomiseen, kuten täydellinen pyramidi, puolipyramidi, käänteinen pyramidi ja niin edelleen.

Tässä on ohjelma, jolla luodaan puolipyramidikuvio sisäkkäisten silmukoiden avulla.

 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(""); ) ) )

Tuotos

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

Saat lisätietoja käymällä Java-ohjelmassa tulostaaksesi pyramidin ja kuviot.

katkaise ja jatka sisäkkäisiä silmukoita

Kun käytämme breaklausetta sisäisen silmukan sisällä, se päättää sisäisen silmukan, mutta ei ulompaa silmukkaa. Esimerkiksi,

 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); ) ) ) )

Tuotos

Viikko: 1 Päivä: 1 Päivä: 2…. Viikko: 2 Viikko: 3 Päivä: 1 Päivä: 2….….

Yllä olevassa esimerkissä olemme käyttäneet katkaisulausetta sisäisen forsilmukan sisällä . Tässä ohitetaan silmukka, kun i on 2 .

Siksi viikon 2 päiviä ei tulosteta. Viikkoa tulostava ulompi silmukka ei kuitenkaan muutu.

Vastaavasti, kun käytämme continuelausetta sisäisen silmukan sisällä, se ohittaa vain sisemmän silmukan nykyisen iteraation. Ulompaan silmukkaan ei vaikuteta. Esimerkiksi,

 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); ) ) ) )

Tuotos

 Viikko: 1 päivä: 2 päivää: 4 päivää: 6 viikko: 2 päivää: 2 päivää: 4 päivää: 6 viikko: 3 päivää: 2 päivää: 4 päivää: 6

Yllä olevassa esimerkissä olemme käyttäneet jatko-lausetta sisäisen silmukan sisällä. Huomaa koodi,

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

Tässä continuelauseke suoritetaan, kun j: n arvo on pariton. Siksi ohjelma tulostaa vain tasaiset päivät.

Voimme nähdä, että continuelausunto on vaikuttanut vain sisäiseen silmukkaan. Ulompi silmukka toimii ongelmitta.

Mielenkiintoisia artikkeleita...