x = x ++;
Это оператор post-increment. Его следует понимать как «Использовать значение операнда, а затем увеличивать операнд».
Если вы хотите, чтобы произошло обратное, т.е. «Increment the operand, а затем используйте значение операнда», вы должны использовать оператор pre-increment, как показано ниже.
x = ++ x;
Этот оператор сначала увеличивает значение x на 1, а затем присваивает значение обратно x.