Hola!! Estoy bastante confundida ya que por esta línea de código:
int num = 5;
int resultado = num++; //num es atribuido primero a la variable resultado y depués es incrementado para 6
Entiendo que lo que hace el código es que a la variable resultado primero se le asigna el valor original de la variable num (5) y después se incrementa la variable num en 1, por lo tanto nos queda que num es 6 (pues fue incrementado) y resultado es 5 (pues se le asignó la variable num antes de ser inrementada). Pero no entiendo este ejemplo:
int num=5;
num=num++;
System.out.println(num);
En este caso siguiendo lo que entendí del ejemplo anterior, primero debería asignarse al valor de num (sin incrementar) a num, es decir num sigue siendo 5, y luego incrementar la variable num en 1, es decir que luego debería ser 6, pero esto no ocurre así, al ejecutar el código num sigue siendo 5, es como si la asignación anulase/sobreescribiera el post-incremento. Y no entiendo por qué ocurre esto,porque por lo que entendí de la teoría, no debería ser el post-incremento el que sobrescriba la asignación? ya que el post-incremento aumenta el valor de la variable en 1 después de usarla en una expresión.