A primeira vista é algo muito estranho... mas pensa o seguinte: Quando você faz i += i, o lado direito considera o valor da variável ( no caso, 1). Logo, i = 2. Por outro lado, quando você faz i++, primeiro é retornado o valor da variável ( ainda 1 ), e após é incrementado. Logo, i=2.
Note que separando a soma em duas linhas, o resultado passa a ser 3. []'s Cristofer -----Mensagem Original----- De: "Tenisson Chaves dos Santos Júnior" <[EMAIL PROTECTED]> Para: <[EMAIL PROTECTED]> Enviada em: quarta-feira, 15 de janeiro de 2003 13:31 Assunto: [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] -------------------------------------------------------------------------