Duvida no resultado desta questao

5 respostas
marcosbrandao

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ê?

5 Respostas

pintofree

??? 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.

christianovale

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

marcosbrandao

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

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.

marcosbrandao

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.


:lol: :oops: :lol: :oops: :lol: :oops:

Ai caramba…

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

Criado 24 de abril de 2008
Ultima resposta 25 de abr. de 2008
Respostas 5
Participantes 4