Bucle imbricate

O buclă în interiorul altei bucle se numește buclă imbricată. Bucla interioară se execută complet la fiecare iterație a buclei exterioare.

nested.cpp
// Steluțe în formă de dreptunghi
int n = 4, m = 6;
for (int i = 1; i <= n; i++) {
  for (int j = 1; j <= m; j++) {
    cout << "* ";
  }
  cout << endl;
}

Triunghi de stele

int n = 5;
for (int i = 1; i <= n; i++) {
  for (int j = 1; j <= i; j++) {
    cout << "* ";
  }
  cout << endl;
}
/*
*
* *
* * *
* * * *
* * * * *
*/

Numere prime până la n

int n = 50;
for (int i = 2; i <= n; i++) {
  bool prim = true;
  for (int j = 2; j * j <= i; j++) {
    if (i % j == 0) { prim = false; break; }
  }
  if (prim) cout << i << " ";
}
Complexitate: 2 bucle imbricate înseamnă O(n²). Evită bucle imbricate inutile în programe cu n mare.