operador pós-incremento java
Não consigo criar cara ou coroa do código a seguir de "java puzzlers" de joshua bloch.
public class Test22{
public static void main(String args[]){
int j=0;
for(int i=0;i<100;i++){
j=j++;
}
System.out.println(j); //prints 0
int a=0,b=0;
a=b++;
System.out.println(a);
System.out.println(b); //prints 1
}
}
Não consigo obter a parte em que j imprime 0. Segundo o autor,
j=j++
é similar a
temp=j;
j=j+1;
j=temp;
Mas
a=b++
faz b 1. Então deveria ter avaliado assim,
a=b
b=b+1
Seguindo a mesma lógica, não deveria
j=j++
ser avaliado como,
j=j
j=j+1
Onde a temperatura entra em cena aqui? Qualquer explicação seria muito apreciada. << Estou quebrando minha cabeça sobre isso. ;) >> Agradecemos antecipadamente.