[quote=Matheus Tardivo]Realmente, neste caso, o funcionamento é um pouco diferente do que expliquei.
Ai já entra um elemento extra: ordem de avaliação dos operandos.
Mas essa dúvida já foi bastante discutida, inclusive aqui mesmo no GUJ.
http://www.guj.com.br/posts/list/2853.java
http://www.guj.com.br/posts/list/30723.java
http://www.javafree.org/javabb/viewtopic.jbb?t=11245
http://www.javafree.org/javabb/viewtopic.jbb?t=10563
Esse tipo de dúvida é apenas coisas de certificação (se bem que não me lembro de ter visto isso quando fiz a minha).
Não vejo porque alguém utilizaria uma atribuição dessas num caso real. [/quote]
ok li todos os comentarios.Defato todos afirmam que na ordem da
de uma expressao o compilador dar preferencia para o operador unario ++ ou – , depois o binario sendo assim em um exemplo
b=1
b=b++ + b
primeiro incrementa defato b+1 e depois e soma com b antigo
ou seja b= 2 + 1,b=3
O problema desse raciocinio surge quando vc tem uma expressao um pouco mais complicada do tipo b=1;
b=b++ + b++
logo de acordo com a regra geral explicada pela galera,o compilador PRIMEIRO faz b++ pós-operaco e operador unario, depois soma os 2 resultados dando preferencia por fim para o operador binario logo ficaria b=2 + 2,total b=4
mas na verdade quando mandei compilar o resultado foi b=3
pq??