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

Responder a