Operadores

10 respostas
shenn

Galera, estava estudando e fiqquei com uma duvida.

int r; 
int n = 10;
r = n++ + 1; 
System.out.println(r); //Imprimi 11
n = 10;
r = ++n + 1;
System.out.println(r); //Imprimi 12

Qual a diferença disso?

10 Respostas

tmvolpato

Aqui explica

http://qualadoce.blogspot.com.br/2010/10/pre-ou-pos-quando-usar.html

flw

shenn

Acho que deu pra entender, mas é meio confuso…

int a = 5, b;

b = a++;

Qual o valor das variáveis a e b?
O valor esperado para a é 6 e para b é 5.

Se utilizarmos o operador pré-fixado, conforme exemplo abaixo:

int a = 5, b;

b = ++a;

O valor esperado para ambas as variáveis é 6.

gusthavosouza

Desculpe li errado é isso mesmo que o pessoal disse

int r; int n = 10; // No pos eu incremento apos eu somar o n + 1. r = n++ + 1; // pos incremento ele pega o valor incrementa 1 e imprime System.out.println(r); //Imprimi 11 n = 10; // No pre eu incremento primeiro o ++n que é igual a 11 e somo o 1. r = ++n + 1; // no pré incremento ele incrementa 1 depois soma +1 e ai sim imprime System.out.println(r); //Imprimi 12

Rodrigo_Sasaki

Se o operador vem depois, o incremento é feito após a operação (no caso atribuição).

Se o operador vem antes, o incremento é feito antes da operação.

tmvolpato

shenn:
Acho que deu pra entender, mas é meio confuso…

int a = 5, b;

b = a++;

Qual o valor das variáveis a e b?
O valor esperado para a é 6 e para b é 5.

Se utilizarmos o operador pré-fixado, conforme exemplo abaixo:

int a = 5, b;

b = ++a;

O valor esperado para ambas as variáveis é 6.

Posso até explicar, mas acho melhor vc ler de novo e
com calma que vc vai entender

shenn

Tipo até onde eu entendi

int r; 
int n = 10;
// No pos eu incremento apos eu somar o n + 1.
r = n++ + 1; 
System.out.println(r); //Imprimi 11
n = 10;
// No pre eu incremento primeiro o ++n que é igual a 11 e somo o 1.
r = ++n + 1;
System.out.println(r); //Imprimi 12
shenn

Entendii UHSAHUASHUASUHAS

No pos eu estou acrescentando na variavel a; (Já que eu faço o a++ depois de atribuir ele para o b)

e no pre eu acrescento e depois somo… (ja que eu faço primeiro faco o ++a e depois eu atribuo ele para a variavel b)

por isso os valores são diferentes…

(não sei se me expressei bem)

E

Como de costume, espero que você use essas aberrações impossíveis de entender (ou seja, botar esses operadores de pré e pós-incremento dentro de outras expressões) só para estudar para a prova de certificação.

Em código profissional, não use coisas que você mesmo não entende depois de escrever :frowning:

shenn

entanglement

Pode ter certeza que eu não quero usar isso nunca!! Só pra certificação mesmo!

ViniGodoy

entanglement:
Como de costume, espero que você use essas aberrações impossíveis de entender (ou seja, botar esses operadores de pré e pós-incremento dentro de outras expressões) só para estudar para a prova de certificação.

Em código profissional, não use coisas que você mesmo não entende depois de escrever :(

Claro, imagine encontrar algo assim num código profissional:

x += x++ * (--x);

Ninguém merece…

Criado 19 de fevereiro de 2013
Ultima resposta 19 de fev. de 2013
Respostas 10
Participantes 6