Un classico ciclo for del tipo:
for (int n = 0; n <= max; n++) {
//CORPO
}
Può essere "tradotto" in un while nel seguente modo:
int n = 0;
while (n <= max) {
//CORPO
n++;
}
Quindi se vuoi fare con while l'equivalente di due for "annidati", ti basta mettere l'equivalente di un for
dentro il corpo di un altro equivalente di for (ovviamente variabili indice differenti!) ..... a buon intenditor .....