int result = 5;    
result = result--;  
System.out.println(result);  
Почему результат равен 5?
int result = 5;    
result = result--;  
System.out.println(result);  
Почему результат равен 5?
Это ничего не делает:
   result = result--;  
Потому что result-- возвращает значение результата до того, как оно уменьшилось (в отличие от --result, которое возвращает значение результата после его уменьшения).
И так как часть права = выполняется до =, вы в основном уменьшаете результат, а затем в той же строке задаете результат до значения, которое оно имело до декремента, тем самым отменяя его на практике.
Итак, вы можете написать
   result = --result;  
Но если вы хотите уменьшить результат, просто сделайте
result--; 
(или --result;, но очень необычно и нетипично использовать его самостоятельно, не делайте этого, когда вы не хотите использовать результат выражения, но просто хотите уменьшить)
Поскольку значение выражения result-- является значением result до декремента. Затем result уменьшается, и, наконец, значение выражения присваивается result (переписывая декремент).
Очень правильный вопрос!
Ваш код не работает, поскольку result-- выполняется только после замены =. Ваш код будет работать, если бы вы использовали префиксный оператор:
result = --result;
Однако это не имеет никакого смысла, поскольку вы можете просто написать:
--result;
Для более подробного объяснения см. этот вопрос/ответы о том, как работают операторы префикса/постфикса на Java.
Это запутанная конструкция. Его же, как
int tmp = result;
result--;  
result = tmp;
Используется оператор пост-декремента. Это потому, что вы пишете result--, но не --result. Значение выражения result-- является копией result, оно определяется до декремента. Вот почему он назывался пост-декрементом.
После определения значения выражения result--, result уменьшается.  Но: Сразу после этого значение result переопределяется значением выражения result-- (result = 5), которое равно 5.
result-- - пост декремент.. это означает, что значение сначала присваивается результату, а затем уменьшается.
вы можете найти этот ответ полезным.
Я считаю, что вы хотите:
int result = 5;     
result--; 
System.out.println(result);  
измените на приращение префикса, чтобы получить желаемый результат, или удалите оператор присваивания:
int result = 5;
result = --result;
System.out.println(result);
попробовать
Результат = - результат; он напечатает 4, и вы поймете, что такое различие между c-- и -c