Article image
Adriano Menezes
Adriano Menezes11/04/2023 10:12
Compartilhe

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.

Compartilhe
Comentários (3)
Adriano Menezes
Adriano Menezes - 13/04/2023 19:29

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

Everton Martins
Everton Martins - 11/04/2023 22:45

Então a++ é diferente de a+1?

LS

Lorrayne Silva - 11/04/2023 18:54

E minha primeira vez aqui com voceis e quero aprender muitas coisas