Selles artiklis õpime C # pesastatud silmuseid. Õpime programmi sisestatud tsükleid pesa jaoks, ajal ja tehes tegema.
Teises silmus olevat silmust nimetatakse pesastatud silmuseks. Nii näeb välja pesastatud silmus:
Välissilmus (// sisemise aasa sisemine silmus (// sisemise aasa keha)………)
Nagu näete, ümbritseb välimine silmus sisemist silmust . Sisemine silmus on osa välimisest silmusest ja see peab algama ja lõppema välimise silmuse kehas.
Iga välise silmuse iteratsiooni korral täidetakse sisemine silmus täielikult.
Pesastatud silmuse jaoks
A-tüüpi silmust teise silmuse jaoks nimetatakse sisestatud silmuseks.
Näiteks:
for (int i = 0; i <5; i ++) (// välise keha jaoks silmuse jaoks (int j = 0; j <5; j ++) (// sisemise keha jaoks silmuse jaoks) // välise keha jaoks silmuse jaoks )
Näide 1: Pesitud aasale
using System; namespace Loop ( class NestedForLoop ( public static void Main(string() args) ( int outerLoop = 0, innerLoop = 0; for (int i=1; i<=5; i++) ( outerLoop ++; for (int j=1; j<=5; j++) ( innerLoop++; ) ) Console.WriteLine("Outer Loop runs (0) times", outerLoop); Console.WriteLine("Inner Loop runs (0) times", innerLoop); ) ) )
Programmi käivitamisel on väljund:
Välissilmus töötab 5 korda Sisemine silmus töötab 25 korda
Selles programmis töötab välimine silmus 5 korda. Iga kord, kui välimine silmus jookseb, jookseb sisemine silmus 5 korda, tehes seda kokku 25 korda.
Näide 2: Pesastatud silmusest printimiseks
using System; namespace Loop ( class NestedForLoop ( public static void Main(string() args) ( for (int i=1; i<=5; i++) ( for (int j=1; j<=i; j++) ( Console.Write(j + " "); ) Console.WriteLine(); ) ) ) )
Programmi käivitamisel on väljund:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
Pesastatud silmuse ajal
Mõnda silmust teise, samal ajal kui silmust nimetatakse pesaks kui silmuseks.
Näiteks:
while (tingimus-1) (// silmuse välimine kehaosa samas (tingimus-2) (// sisemise silmuse keha) // silmuse välimise keha osa)
Näide 3: Pesitud aasa ajal
using System; namespace Loop ( class NestedWhileLoop ( public static void Main(string() args) ( int i=0; while (i<2) ( int j=0; while (j<2) ( Console.Write("((0),(1)) ", i,j); j++; ) i++; Console.WriteLine(); ) ) ) )
Programmi käivitamisel on väljund:
(0,0) (0,1) (1,0) (1,1)
Pesastatud tööaeg
Teise do-while tsükli sees olevat do-while silmust nimetatakse pesastatud do-while silmuseks.
Näiteks:
do (// välise, samal ajal kui silmuse keha teeb (// sisemise, kui aasa keha) while (tingimus-2); // silmuse välise keha keha (while) (tingimus-1);
Näide 4: Pesastatud tööaeg
using System; namespace Loop ( class NestedWhileLoop ( public static void Main(string() args) ( int i=0; do ( int j=0; do ( Console.Write("((0),(1)) ", i,j); j++; ) while (j<2); i++; Console.WriteLine(); ) while (i<2); ) ) )
Programmi käivitamisel on väljund:
(0,0) (0,1) (1,0) (1,1)
Erinevad sisemised ja välimised pesastatud silmused
Sama tüüpi silmuste pesitsemine pole kohustuslik. Me võime panna for-silmuse mõnda aega loopi või do-while-silmuse aasa sisse.
Näide 5: C # pesastatud silmus: erinevad sisemised ja välimised silmused
using System; namespace Loop ( class NestedLoop ( public static void Main(string() args) ( int i=1; while (i<=5) ( for (int j=1; j<=i; j++) ( Console.Write(i + " "); ) Console.WriteLine(); i++; ) ) ) )
Programmi käivitamisel on väljund:
1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
Ülaltoodud programmis asetatakse for-loop silmuse sees. Aasa sees võime kasutada erinevat tüüpi silmuseid.