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] -------------------------------------------------------------------------