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