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…