Isso é por causa da procedencia do operador aritmético, para funcionar o que você quer o comando deve ser i = ++i , assim será primeiro processada a operação aritmética e depois o retorno do valor da variavel, sendo que i = i++ , primeiro faz o retorno da variavel e depois a operação aritmética.
Pegadinhas do Java. []´s Marcello Mendes ----- Original Message ----- From: "Cristiano Bianchi Sanchez" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, February 26, 2002 11:58 AM Subject: [java-list] código obscuro!! > Oi lista, > > Alguém pode explicar porque a seguinte implementação retorna 0 (zero)? > > { > int i = 0; > i = i++; > System.out.println(i); > } > > Não seria mais 'lógico' retornar 1, como em C++ ? > > Abraços, > > CristianoBS > > ------------------------------ 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] -------------------------------------------------------------------------