Ebben az oktatóanyagban megismerkedhetünk a beágyazott hurkokkal a C ++ nyelven. Megtanuljuk használni a beágyazott program használatát a, közben és közben … közben.
Egy másik hurokban lévő hurokot beágyazott huroknak nevezzük. Vegyünk egy példát,
Tegyük fel, hogy a hét minden napján 3 hétig szeretnénk végigmenni.
Ennek elérése érdekében létrehozhatunk egy beágyazott hurkot, amely háromszor (3 hét) ismétlődik. A hurok belsejében pedig létrehozhatunk egy újabb ciklust, amely 7-szer (7 nap) ismétlődik. Például,
Példa: Beágyazva a hurokba
// C++ program to display 7 days of 3 weeks #include using namespace std; int main() ( int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( cout << " Day:" << j << endl; ) ) return 0; )
Kimenet
Hét: 1 Nap: 1 Nap: 2 Nap: 3… Hét: 2 Nap: 1 Nap: 2 Nap: 3……
Hasonlóképpen létrehozhatunk beágyazott ciklusokat a while és a… műveletekkel.
Példa: Minta megjelenítése
// C++ program to display a pattern // with 5 rows and 3 columns #include using namespace std; int main() ( int rows = 5; int columns = 3; for (int i = 1; i <= rows; ++i) ( for (int j = 1; j <= columns; ++j) ( cout << "* "; ) cout << endl; ) return 0; )
Kimenet
* * * * * * * * * * * * * * *
Ebben a programban, a külső ciklus végigmegy re i == 1
a i == rows
.
A belső ciklus végigmegy re j == 1
a j == columns
. A belső hurkon belül kinyomtatjuk a karaktert '*'
.
törje meg és folytassa az Inside Nested Loops alkalmazást
Ha a belső hurok belsejében egy törésmondatot használunk, akkor a belső hurok befejeződik, a külső hurok azonban nem. Például,
int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( // break during the 2nd week if (i == 2) ( break; ) cout << " Day:" << j << endl; ) )
Kimenet
Hét: 1 Nap: 1 Nap: 2… Hét: 2 Hét: 3 Nap: 1 Nap: 2…
Ez a program nem futtatja a belső ciklust, ha az i értéke 2
azaz nem nyomtatja ki a 2. hét napjait. A héteket kinyomtató külső hurok nem változik.
Hasonlóképpen, amikor a folytatódási utasítást használjuk a belső hurokban, akkor csak a belső hurok aktuális iterációját hagyja ki. A külső hurok érintetlen. Például,
int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( // continue if the day is an odd number if (j%2 != 0) ( continue; ) cout << " Day:" << j << endl; ) )
Kimenet
Hét: 1 nap: 2 nap: 4 nap: 6 hét: 2 nap: 2 nap: 4 nap: 6 hét: 3 nap: 2 nap: 4 nap: 6
Ez a program csak a páros napokat nyomtatja ki.
Amikor a days_in_week páratlan, az continue
utasítás kihagyja a belső hurok iterációját.