Šajā apmācībā mēs uzzināsim par Java ligzdotajām cilpām, izmantojot piemērus.
Ja cilpa pastāv citas cilpas korpusā, to sauc par ligzdotu cilpu. Šis ir ligzdotās for
cilpas piemērs .
// outer loop for (int i = 1; i <= 5; ++i) ( // codes // inner loop for(int j = 1; j <=2; ++j) ( // codes )… )
Lūk, mēs izmantojam for
cilpu citas for
cilpas iekšpusē .
Mēs varam izmantot ligzdoto cilpu, lai atkārtotu visas nedēļas dienas 3 nedēļas.
Šajā gadījumā mēs varam izveidot cilpu, lai atkārtotu trīs reizes (3 nedēļas). Cilpas iekšpusē mēs varam izveidot vēl vienu cilpu, lai atkārtotu 7 reizes (7 dienas).
1. piemērs: Java ir ligzdota lokam
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); ) ) ) )
Rezultāts
Nedēļa: 1 diena: 1 diena: 2 diena: 3…. Nedēļa: 2 Diena: 1 Diena: 2 Diena: 3….….
Iepriekš minētajā piemērā ārējā cilpa atkārtojas 3 reizes un izdrukā 3 nedēļas. Iekšējā cilpa atkārtojas 7 reizes un izdrukā 7 dienas.
Mēs varam arī izveidot ligzdotas cilpas ar while un do… kamēr līdzīgi.
Piezīme : Ir iespējams izmantot viena veida cilpas citas cilpas korpusā. Piemēram, mēs varam ievietot for
cilpu cilpas iekšpusē while
.
2. piemērs: Java cilpai kamēr cilpa
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; ) ) )
Izeja :
Nedēļa: 1 diena: 1 diena: 2 diena: 3…. Nedēļa: 2 Diena: 1 Diena: 2 Diena: 3….….
Šeit jūs varat redzēt, ka gan 1., gan 2. piemēra rezultāts ir vienāds.
3. piemērs: Java izveidoja cilpas, lai izveidotu modeli
Mēs varam izmantot Java ligzdoto cilpu, lai izveidotu tādus modeļus kā pilna piramīda, puse piramīdas, apgriezta piramīda utt.
Šeit ir programma, lai izveidotu pusi piramīdas modeli, izmantojot ligzdotas cilpas.
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(""); ) ) )
Rezultāts
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
Lai uzzinātu vairāk, apmeklējiet Java programmu, lai izdrukātu piramīdu un modeļus.
pārtrauciet un turpiniet Inside Nested Loops
Kad mēs izmantojam break
paziņojumu iekšējās cilpas iekšpusē, tas pārtrauc iekšējo cilpu, bet ne ārējo cilpu. Piemēram,
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); ) ) ) )
Rezultāts
Nedēļa: 1 diena: 1 diena: 2…. Nedēļa: 2 Nedēļa: 3 Diena: 1 Diena: 2….….
Iepriekš minētajā piemērā mēs esam izmantojuši pārtraukuma paziņojumu iekšējās for
cilpas iekšpusē . Lūk, programma izlaiž cilpu, kad i ir 2 .
Tādējādi 2. nedēļas dienas netiek drukātas. Tomēr ārējā cilpa, kas izdrukā nedēļu, netiek ietekmēta.
Līdzīgi, kad mēs izmantojam continue
paziņojumu iekšējās cilpas iekšpusē, tas izlaiž tikai iekšējās cilpas pašreizējo atkārtojumu. Ārējā cilpa netiek ietekmēta. Piemēram,
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); ) ) ) )
Rezultāts
Nedēļa: 1 dienas: 2 dienas: 4 dienas: 6 nedēļa: 2 dienas: 2 dienas: 4 dienas: 6 nedēļas: 3 dienas: 2 dienas: 4 dienas: 6
Iepriekš minētajā piemērā mēs esam izmantojuši turpinājuma paziņojumu iekšējā cilpa iekšpusē. Ievērojiet kodu,
if(j % 2 != 0) ( continue; )
Šeit continue
paziņojums tiek izpildīts, kad j vērtība ir nepāra. Tādējādi programma drukā tikai tās dienas, kas ir vienmērīgas.
Mēs varam redzēt, ka continue
apgalvojums ir ietekmējis tikai iekšējo cilpu. Ārējā cilpa darbojas bez problēmām.