Esse codigo vai resultar em '0' (zero) tanto em Java quanto em C/C++.

O problema aqui eh de qual operacao esta acontecendo.

Veja o que acontece com a variavel 'i' nesse seu programa: 

   {
1     int i = 0;
2     i = i++;
3     System.out.println(i);
   }

Na linha 1 i recebe o valor 0 (zero).

Na linha 2 acontece uma atribuicao, e a parte a direita do operador e calculada.
Como o operador ++ esta a DIREITA da variavel, o valor da expressao eh calculado
com o valor inicial da variavel, 0 (zero) nesse caso. O operador ++ eh entao
executado, e o valor de i vai para 1 (um).
Apos isso, a operacao de atribuicao ira acontecer, e o valor da expressao
calculada eh 0 (sero), e esse valor eh novamente atribuido a variavel 'i',
fazendo com que chegue a linha 3 zerada!

Ficou claro?

E esse comportamento eh o mesmo em C, C++ ou Java, que eu saiba.

Silvio


On Tue, 26 February 2002, Cristiano Bianchi Sanchez wrote

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

Responder a