i = 1
i +=  --->  1+1 = 2

Isto acontece porque a variável "i" que está do lado direito, primeiro é
atribuída a
variável "i" do lado esquerdo, ficando o sinal de ++ sem função para o lado
esquerdo
da expressão, no entanto a variável "i" do lado direito dá uma expectativa
de que como
ela já havia sido alocada pelo lado esquerdo com o valor 2, ela atualizasse
seu valor em
mais um, ficando 2+1=3, o que não acontece, porque quando a expressão é
formada,
uma cópia de "i" foi feita antes da atualização do "i" do lado esquerdo,
então o "i" do lado
direito é a variável mais recente e atualizará a memória com: último valor
de "i" para instância
mais atual + um = 1 + 1 = 2.  Espero não ter sido muito confuso.

----- Original Message -----
From: "Tenisson Chaves dos Santos Júnior" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, January 15, 2003 11:31 AM
Subject: [java-list] Dúvida em código


Pessoal,

 No código abaixo , eu esperava obter  "3" no valor da variável i. No
entanto , o valor retornado é "2" .
 Alguém poderia me explicar o porquê disso ?

public class Teste{
public static void main(String args[]) {
int i=1 ;
i += i++ ;
System.out.println(i);
}
}

Obrigado,

Tenisson Chaves Jr.


------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------



------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a