V tej vadnici bomo spoznali ugnezdene zanke v jeziku C ++. Naučili se bomo uporabljati ugnezdene zanke za, while in do … while v programu.
Zanka znotraj druge zanke se imenuje ugnezdena zanka. Vzemimo primer,
Recimo, da želimo 3 tedne ponavljati vsak dan v tednu.
Da bi to dosegli, lahko ustvarimo ugnezdeno zanko za ponovitev trikrat (3 tedne). In znotraj zanke lahko ustvarimo še eno zanko, ki se ponovi 7-krat (7 dni). Na primer
Primer: ugnezdeni za zanko
// 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; )
Izhod
Teden: 1 dan: 1 dan: 2 dan: 3… teden: 2 dan: 1 dan: 2 dan: 3……
Ugnezdene zanke lahko ustvarimo z while in na podoben način naredimo … medtem ko.
Primer: prikaz vzorca
// 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; )
Izhod
* * * * * * * * * * * * * * *
V tem programu se zunanja zanka ponavlja od i == 1
do i == rows
.
Notranja zanka se ponavlja od j == 1
do j == columns
. Znotraj notranje zanke natisnemo znak '*'
.
prekinite in nadaljujte znotraj gnezdenih zank
Ko uporabimo izjavo break znotraj notranje zanke, ta zaključi notranjo zanko, ne pa tudi zunanje zanke. Na primer
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; ) )
Izhod
Teden: 1 dan: 1 dan: 2… teden: 2 teden: 3 dan: 1 dan: 2…
Ta program ne zažene notranje zanke, kadar je vrednost i, 2
tj. Ne natisne dni 2. tedna. Zunanja zanka, ki natisne tedne, ni prizadeta.
Podobno, ko uporabimo stavek continue znotraj notranje zanke, preskoči samo trenutno ponovitev notranje zanke. Zunanja zanka ni prizadeta. Na primer
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; ) )
Izhod
Teden: 1 dan: 2 dan: 4 dan: 6 teden: 2 dan: 2 dan: 4 dan: 6 teden: 3 dan: 2 dan: 4 dan: 6
Ta program natisne samo tiste sodo dni.
Kadar je days_in_week nenavaden, continue
stavek preskoči to ponovitev notranje zanke.