Цикл эквивалентен:
int x = 2;
{
int y = 2;
while (y > 0)
{
System.out.println(x + " "+ y + " ");
x++;
y--; // or --y;
}
}
Как видно из чтения этого кода, не имеет значения, используете ли вы оператор post или pre-decment в третьем разделе цикла for.
В общем, любой for цикл формы:
for (ForInit ; Expression ; ForUpdate)
forLoopBody();
в точности соответствует циклу while:
{
ForInit;
while (Expression) {
forLoopBody();
ForUpdate;
}
}
Цикл for более компактен, и, следовательно, его легче разобрать для такой распространенной идиомы.