codice:
lato = 4;
i = 1;
j = 1;
// entra nel ciclo di j ed inserisce nella stringa
[][][][]
poi va a capo \n
[][][][]
poi va a capo \n
[][][][]
poi va a capo
[][][][]
quindi, infine, ottieni:
codice:
[][][][]
[][][][]
[][][][]
[][][][]
Triangolo
codice:
lato = 4;
i = 1;
j = i; // inizialmente 1
[]
va a capo \n
[][]
va a capo \n
[][][]
va a capo \n
[][][][]
ed ottieni
codice:
[]
[][]
[][][]
[][][][]
Mettendo come condizione "j<=i" costringi j ad essere non più grande di i. Questo significa che nel primo ciclo, abbiamo i=1. Viene eseguito il for di J che conta sino a che j<=i. Si ferma, e va a capo. i ora verrà incrementato e varrà 2, quindi j scorre sino a che non sarà <=i, concatena quindi [][] e poi torna capo, poichè esce dal ciclo...e così via.
Spero ti sia chiaro