Duvida no resultado desta questao

E ai galera.

Encontrei um questão, bem simples, mas não consigo entender o motivo do resultado.

int a = 1;
system.out.println(i++ + ++i);

Eu imagino que o resultado deveria ser 3. Imagino assim:
i++ = 1 (pos incremento)
++i = 2 (pre incremento)
logo
1 + 2 = 3;

mas o resultado é igual a 4. Por quê?

??? esse código ai não esta errado?? ou vc copiou uma parte muito pequena dele. a variável i nem foi declarada, agora se o a era pra ser o i, a resposta esta certa mesmo vc tem que analisar a ordem de preferência dos operadores.

Bom, corrigindo o código:

# int a = 1;  
# system.out.println(a++ + ++a); 

1 - Na primeira expressão: a++ (pos-incremento) a variavel ‘a’ ainda possui o valor igual a 1;

2 - Com o pós incremento ela passou a ter o valor igual a 2;

3 - A seguir, com o pre-incremento (++a), a variavel a passou a ter o valor 3;

4 - Logo: ( 1 + 3 ) = 4

Desculpem o erro, não tinha percebido isso. O codigo deve ser como o christianovale falou.

Então o pos incremento é executado antes de eu fazer a soma dos valores, certo? Se for isso eu entendi…

Valeu galera

Tostines vende mais por ser mais fresquinho, ou é mais fresquinho por vender mais ?

É o contrário, o PÓS é executado depois, não antes.

[quote=zwingli]Tostines vende mais por ser mais fresquinho, ou é mais fresquinho por vender mais ?

É o contrário, o PÓS é executado depois, não antes.[/quote]
:lol: :oops: :lol: :oops: :lol: :oops:

Ai caramba…

Acho que eu não tava muito bem ontem… troquei o pre por pos…