Tenisson,

Esse c�digo tem cara de "pegadinha"...
O operador ++ p�s-fixo obt�m o valor da vari�vel e s� a� faz o incremento. O seu c�digo i+= i++ equivale ao seguinte:

int i = 1;
i = i + i++;

que equivale a (em bytecode):

empilha o valor de i (i=1)
empilha o valor de i (i=1)
incrementa i (i=2)
soma dois valores da pilha (1+1) e atribui a i (i=2)

ou seja, i recebe 2 duas vezes...


Espero ter sido claro.

Flexa

At 13:31 15/1/2003, you wrote:
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