• Skip to primary navigation
  • Skip to content

Mauda

IT, Java and Music

Graduação   SCJP   Mestrado
  • Apresentação
  • Certificação Java
  • JPA
    • Exceptions
  • JSF
  • Versionamento
  • Contato

Operador de Incremento puzzle 002!! – Resposta

July 28, 2016 by Mauda Leave a Comment

Conteúdo do Post:
  1. Puzzle 002 – Resposta
  2. finnaly{

Olá Pessoal, tudo bom?

Aqui é a resposta do puzzle 002. Veja na continuação deste post!

Puzzle 002 – Resposta

E aí, o que o código da classe Teste irá imprimir no console???

Java
1
2
Valor varA = 2
Valor varB = 1

Mas porque ele imprimiu esses valores?

Vamos analisar o que aconteceu na linha 11:

Java
1
varB = varA++ + varA++;

Estabelecemos algumas verdades:

  • Existe 2 operadores de pós incremento
  • O valor inicial da varA é Zero
  • O valor final da varA é dois

Bom, se existe dois operadores de pós incremento, significa que um deles causou um incremento em uma unidade da varA ao fim da execução desta linha. OK, mas e o outro? Vamos primeiro deduzir e depois explicamos um pouco melhor.

Com essa primeira verdade sobre um operador de incremento e com o valor final de varB sendo 1 nós podemos pensar que a expressão para dar o valor a B foi uma das seguintes opções:

1 = 0 + 1;

1 = 1 + 0;

Mas vamos pensar, faz sentido o valor de varA ter regredido, conforme a segunda opção? Nesse nosso caso seria impossível. Então a primeira opção é a verdadeira. Mas como aconteceu isso?

Ao tratarmos do operador de pós incremento, devemos ter o seguinte pensamento:

O operador de pós incremento será executado sempre que a mesma variável que possui o operador reaparecer na expressão.

Dessa forma vamos relembrar a expressão da linha 11 novamente:

Java
1
varA++ + varA++;

 

No momento que aparece o operador de pós incremento devemos fazer duas coisas:

  • Substituir a variável com o operador pelo valor atual da variável
  • Incrementar o valor da variável

No nosso caso a variável reaparece na expressão, logo devemos fazer a operação acima e ficar com os valores 0 + 1.

Depois do fim da expressão iremos novamente incrementar o valor de varA, para que fique com 2 unidades.

Assim, resumindo o que aconteceu foi o seguinte:

  • Ao iniciar obtemos o valor de 0 unidades para varA.
  • Adicionamos 1 unidade a varA, pois ela aparece novamente na expressão.
  • Obtemos a valor de 1 para a segunda aparição de varA
  • Foi realizada a operação de adição (0 + 1), atribuindo o valor final a varB (1)
  • Foi realizada a segunda operação de pós incremento, adicionando 1 unidade a varA, chegando ao seu valor final (2)

finnaly{

Gostou dos puzzle? Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!

Até um próximo post!

Filed Under: Java, Puzzle Tagged With: Java, JUnit, pós incremento, pré incremento, puzzle

About Mauda

Mestre em Informática, Analista de Sistemas, Professor, SCJP e Baterista. Desde 2002 trabalhando no mundo Java e ensinando pessoas sobre desenvolvimento de sistemas. Mais informações

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Advertisements

Copyright © 2025 · Genesis Framework · WordPress · Log in