Buclele imbricate sunt concepte programatice constituite din două sau mai multe bucle plasate una în interiorul celeilalte. Bucla cea mai din interior este executată de cele mai multe ori, în timp ce bucla cea mai exterioară, de cele mai puține ori. Acest lucru se datorează faptului că buclele interioare trebuie să-și efectueze toate ciclurile pentru fiecare ciclu al buclei imediat exterioare.
Să exemplificăm acest lucru:
1 2 3 4 5 6 7 8 |
for (int x = 0; x < 2; x++) { for (int y = 0; y < 10; y++) { Console.WriteLine("X=" + x + " Y=" + y); } } Console.Read(); |
Rulând acest cod, consola va afișa:
Analizând codul, putem vedea că avem o buclă exterioară, ce inițializează o variabilă de tip întreg, numită x. Această buclă va incrementa numărul cât timp acesta are valoarea mai mică de 2; în interiorul acestei bucle, avem o altă buclă, declarând de asemenea un număr întreg, de data aceasta numit y. Ca și în bucla noastre anterioară, aceasta va fi și el incrementat, dar numai atât timp cât valoarea numărului este mai mică decât 10. Din ieșirea afișată de consolă putem observa că prima bucla incrementează variabila x doar de două ori, în timp ce bucla interioară a incrementat y de 20 de ori! Spun de 20 de ori, pentru că atunci când prima buclă a început prima iterație, bucla interioară a iterat de 10 ori, intervalul de la 0 la 9 (amintiți-vă, y este incrementat cât valoarea sa este mai mică de 10), apoi și-a încheiat execuția, iar bucla exterioară a început al doilea ciclu al său, în care bucla internă va incrementa variabila y din nou de 10 ori.
In concluzie, o buclă internă va rula toate ciclurile sale, pentru fiecare ciclu al buclei exterioare.
Conceptele explicate în această lecție sunt prezentate și vizual, ca parte a următorului videoclip:
EXERCIȚII
1. Scrieți un program care afișează toate cărțile posibile dintr-un pachet de cărți de joc standard, fără jockeri (există 52 de cărți: 4 suite de câte 13 cărți).
Soluție
Instrucțiuni: Numerotați cărțile de la 2 la 14 (aceste numere vor reprezenta cărțile 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A). Numerotați suitele de la 1 la 4 (1 – trefla, 2 – romb, 3 – inima roșie și 4 – inimă neagră). Acum puteți utiliza cele două bucle imbricate pentru a afișa fiecare carte cu două instrucțiuni switch
2. Scrieți un program care citește de la consolă un număr întreg pozitiv N (N < 20) și afișează o matrice de numere ca în figura de mai jos:
Soluție
Instrucțiuni: Ar trebui să utilizați două bucle imbricate. Bucla exterioară trebuie să ruleze de la 1 la N, cea interioară – de la valoarea buclei exterioare până la valoarea buclei exterioare + N – 1
3. Scrieți un program care afișează un tipar de asteriscuri în formă de romb.
Soluție
Tags: Bucle, bucle imbricate