Nie jestem 100% pewien ale wydaje mi się, że zakaz używania pętli for jest skrótem myślowym oznaczającym zakaz używania jakichkolwiek pętli. W takiej sytuacji zostaje rekurencja.
Przykład:
static void tabliczka(int a, int b, int maxA, int maxB) {
if (a > maxA)
return;
if (b > maxB) {
tabliczka(a+1, 1, maxA, maxB);
return;
}
System.out.println(""+a+"*"+b+"="+a*b);
tabliczka(a, b+1, maxA, maxB);
}