In informatica viene detto annidamento (nesting in inglese) l'inserimento di una struttura di controllo all'interno di un'altra in un programma. Un caso tipico è quello dell'iterazione su due o più variabili, come nel seguente esempio (scritto in linguaggio C):
/* moltiplicazione tra matrici: A = B*C */
for (i=0; i<n; i++) { /* ciclo più esterno */
for (j=0; j<m; j++) { /* ciclo intermedio */
a[i][j] = 0.0;
for (k=0; k<l; k++) { /* ciclo più interno */
a[i][j] += b[i][k] * c[k][j];
}
}
}
È fortemente consigliato utilizzare l'indentazione per segnalare visivamente la presenza di strutture annidate una dentro l'altra: la quantità di indentazione da usare è proporzionale al livello di annidamento (in questo esempio vengono usati due spazi per ciascun livello).
Nel caso di cicli annidati, il ciclo più interno viene interamente ripetuto ad ogni iterazione del ciclo che lo contiene, per cui il numero totale di iterazioni eseguite è il prodotto del numero di iterazioni di ciascun ciclo. Così, nell'esempio sopra scritto, l'istruzione a[i][j] += b[i][k] * c[k][j];
viene eseguita n*m*l
volte.