z をリセットしようとしているので、内側のループから出たときに 2 ではなく z = 0 になり、外側のループでループが終了したときに 3 ではなく 0 1 2 3 を出力したいと考えています。
int x = 2, y = 4, z = 0, q = 0;
while (z < y) {
while (z < x) {
System.out.print(z + " ");
z++;
}
System.out.println(z + " ");
z++;
}
System.out.println(z + " ");