Operador Matemático ++ ou --
- #Java
Recentemente vi um desafio postado por uma pessoa (neste momento não lembro bem que era mais ou menos como segue abaixo):
int a = 10;
int b = 5;
System.out.println(a++ * --b);
Questionando qual seria a saida no console.
O valor de saida é 40, mas o por que é 40? (alguns talvez saibam, outros não)
A saída é 40 por que o operador ++ a direita da variavel usa o valor contido na variavel para fazer a conta e o operador -- a esquerda faz a decrementa primeiro (se caso fosse ++ incrementaria primeiro) e depois faz a conta.
Traduzindo para numeros seria.
a++ * --b => 10 * 4 => 40
um resumo da explicação ficaria.
++x forma pré-fixada: incrementa a variavel então usa o valor na expressão
x++ forma pós-fixada: o valor é usado na expressão depois então é incrementado o valor na variavel
isso pode ser comprovado se vc executar o codigo abaixo:
int a = 10;
int b = 5;
int a1, b1;
a1 = a++;
b1 = --b;
System.out.println(a1);
System.out.println(b1);
Espero ter ajudado as pessoas que precisam.




@Everton Martins
Então a++ é diferente de a+1?
Depende do contexto, se vc quiser que no momento do cálculo seja incrementado mais 1 então não se deve usar a++, ou seja neste contexto é diferente.
Nos demais contextos que normalmente vc somente incrementa a variavel
a = a + 1;
e a++;
usados desta forma são idênticos.
Obs: repare que no detalhe da explicação eu comento sobre em que momento o incremento acontece. é mais sobre momento do incremento do que realmente incrementar ou não.
Espero ter esclarecido sua duvida.
Então a++ é diferente de a+1?
LS
E minha primeira vez aqui com voceis e quero aprender muitas coisas